2010-09-24 9 views

Odpowiedz

4

Zakładając, że nie chce, aby ukryć pasek zadań, należy użyć getMaximumWindowBounds.

Java API

http://www.javabeginner.com/java-swing/java-jframe-class-example

Domyślnie JFrame jest wyświetlany w lewy górny róg centrowania JFrame za ekranu. Aby wyświetlić ramkę w określonej lokalizacji , można użyć metody setLocation (x, y) w klasie JFrame . Ta metoda umieszcza górny lewy róg ramki w lokalizacji (x, y).

Twój kod pseudo na prawym górnym rogu wygląda mniej więcej tak:

yourJFrame.setLocation(
    GraphicsEnvironment.getMaximumWindowBounds().getWidth() - 
    yourJFrame.getWidth(), 0); 
+0

Dzięki! Zacząłem od tego - odpowiedź Geoffreya Zhenga rozwiązała mój drugi problem. –

7

Istnieje wiele pytań/odpowiedzi dotyczących używania GraphicsEnvironment do robienia podobnych rzeczy.

Można użyć GraphicsEnvironment.getLocalGraphicsEnvironment().getScreenDevices() uzyskać wszystkie monitory, a następnie zadzwonić GraphicsDevice#getConfigurations a następnie GraphicsConfiguration#getBounds aby uzyskać rozmiar i położenie każdego monitora, a następnie użyć geometrii liceum znaleźć monitora „prawo”. (Zwróć uwagę, że prawdziwa konfiguracja wielu monitorów może ustawić je w dowolnej lokalizacji.)

+0

Czy jest zagwarantowane, że pierwsze urządzenie w GraphicsEnvironment.getLocalGraphicsEnvironment(). GetScreenDevices() zwróci pierwszy najbardziej monitor? Pytam, ponieważ używanie "geometrii szkolnej" jest możliwe, ale nie jest wydajne, jeśli wdrażamy na platformach z wieloma monitorami, gdzie monitory są w zakresie od 1 do 10. –

+0

"Pierwszy" monitor jest źle zdefiniowany, ponieważ, jak powiedziałem, można umieścić wiele monitorów sposób, w jaki chcesz, na przykład 4 monitory na 4 wierzchołkach rombu - jest górny "pierwszy najbardziej" lub lewy? Możesz użyć 'GraphicsEnvironment # getDefaultScreenDevice', aby uzyskać domyślny * monitor *, ale możesz ustawić dowolny monitor jako domyślny (przynajmniej w Windows). –

Powiązane problemy