2010-09-16 16 views
5

con¿Cómo consigo la resolución utilizable verdadera

Toolkit.getDefaultToolkit().getScreenSize()

i no GEHT el tamaño de la pantalla.

Pero generalmente este no es el tamaño disponible que tengo para mi propio programa, porque en el mac hay una barra de menús en la parte superior y una barra de iconos en la parte inferior. Windows tiene una barra de iconos. Entonces, ¿cómo obtengo el espacio real disponible?

Respuesta

9

De Java forum:

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

Ahora usted tiene los límites sans decoraciones de escritorio dependientes de la plataforma. No tengo una Mac, así que solo verifiqué que funciona en WinXP/JDK6.

Tenga en cuenta que si oculta automáticamente la barra de tareas, los límites NO incluyen la barra de tareas, que es correcta.

+0

sí gracias, esto funciona perfekt.En Mac OSX, también. –

+3

Agradecería si puede aceptar la respuesta, entonces. –

+0

@Geoffrey Esto tiene el efecto secundario de cambiar la apariencia de la aplicación, ¿correcto? ¿Es esto necesario? No entiendo qué efecto tiene en el 'GraphicsEnvironment' local. – muffin

1

No estoy seguro de si esto funcionará, pero pruebe la GraphicsConfiguration/GraphicsDevice en su lugar. Es posible que no pueda obtener un cuadro delimitador que descuente el dock en OS X ya que el área del dock se considera espacio de pantalla. Puedo mover ventanas encima. También puedo mover el dock para que esté en el lateral y no en la parte inferior de la pantalla (lo mismo ocurre con la barra de tareas de Windows).

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

+0

Mi respuesta es solo un pequeño paso adelante. –

Cuestiones relacionadas