2010-09-16 19 views
5

zJak uzyskać rzeczywistą użytkową rozdzielczość

Toolkit.getDefaultToolkit().getScreenSize()

ja nie geht rozmiar ekranu.

Ale zazwyczaj nie jest to dostępny rozmiar dla mojego własnego programu, ponieważ na Macu znajduje się na górze pasek menu i na dole pasek ikon. Windows ma pasek ikon. Jak więc uzyskać dostępną przestrzeń?

Odpowiedz

9

Od Java forum:

UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); 
GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment(); 
Rectangle bounds = ge.getMaximumWindowBounds(); 

Teraz masz granicach sans zależne od platformy dekoracje na pulpicie. Nie mam komputera Mac, więc sprawdziłem tylko, czy działa on na WinXP/JDK6.

Pamiętaj, że jeśli automatycznie ukryjesz pasek zadań, granice NIE zawierają paska zadań, który jest poprawny.

+0

tak dziękuję, to działa perfekt.On Mac OSX, również. –

+3

Byłbym wdzięczny, gdybyś mógł przyjąć odpowiedź. –

+0

@Geoffrey Ma to efekt uboczny zmiany wyglądu i stylu działania aplikacji, prawda? Czy to konieczne? Nie rozumiem, jaki ma to wpływ na lokalne 'GraphicsEnvironment'. – muffin

1

Nie jestem pewien, czy to zadziała, ale spróbuj zamiast tego GraphicsConfiguration/GraphicsDevice. Być może nie uda Ci się uzyskać ramki ograniczającej, która zniesie dock w systemie OS X, ponieważ obszar stacji dokującej wciąż jest uważany za miejsce na ekranie. Mogę przesuwać okna na wierzchu. Mogę też przesunąć stację dokującą na bok, a nie na dole ekranu (to samo dotyczy paska zadań systemu Windows).

http://download.oracle.com/javase/6/docs/api/java/awt/GraphicsDevice.html

+0

Moja odpowiedź jest tylko jednym małym krokiem naprzód. –

Powiązane problemy