2010-09-16 9 views
5

conCome faccio ad avere la vera risoluzione utilizzabile

Toolkit.getDefaultToolkit().getScreenSize()

mi faccio geht le dimensioni dello schermo.

Ma di solito questa non è la dimensione disponibile che ho per il mio programma, perché sul Mac c'è una barra dei menu in alto e una in fondo a un'icona. Windows ha un'icona. Quindi, come posso ottenere il vero spazio disponibile?

risposta

9

Da Java forum:

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

Ora avete le decorazioni del desktop dipendenti dalla piattaforma bounds sans. Non ho un Mac in giro, quindi ho solo verificato che funzioni su WinXP/JDK6.

Si noti che se si nasconde automaticamente la barra delle applicazioni, i limiti NON includono la barra delle applicazioni, che è corretta.

+0

sì grazie, questo funziona perfekt.On Mac OSX, anche. –

+3

Sarei grato se tu possa accettare la risposta, allora. –

+0

@Geoffrey Questo ha l'effetto collaterale di cambiare l'aspetto dell'applicazione, corretto? È necessario? Non capisco quale effetto abbia sul 'GraphicsEnvironment' locale. – muffin

1

Non sono sicuro se funzionerà, ma provare invece GraphicsConfiguration/GraphicsDevice. Potrebbe non essere possibile ottenere un riquadro di delimitazione che sconti il ​​dock su OS X poiché l'area del dock è ancora considerata spazio sullo schermo. Posso spostare le finestre su di esso. Posso anche spostare il dock sul lato e non nella parte inferiore dello schermo (lo stesso vale per la barra delle applicazioni di Windows).

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

+0

La mia risposta è solo un piccolo passo avanti da questo. –

Problemi correlati