2010-09-24 4 views

risposta

4

Supponendo che non si vuole coprire la barra delle applicazioni, è necessario utilizzare getMaximumWindowBounds.

Java API

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

Per impostazione predefinita, un JFrame viene visualizzato nell'angolo in alto a sinistra di centraggio JFrame dello schermo. Per visualizzare un frame in una posizione specificata , è possibile utilizzare il metodo setLocation (x, y) nella classe JFrame . Questo metodo posiziona l'angolo in alto a sinistra di un frame nell'angolo posizione (x, y) nell'angolo .

Il codice pseudo per l'angolo in alto a destra sembra qualcosa di simile:

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

Grazie! Questo mi ha fatto iniziare --- la risposta di Geoffrey Zheng ha risolto il mio secondo problema. –

7

Ci sono molte domande/risposte sull'utilizzo di GraphicsEnvironment per fare cose simili.

È possibile utilizzare GraphicsEnvironment.getLocalGraphicsEnvironment().getScreenDevices() per ottenere tutti i monitor, quindi chiamare GraphicsDevice#getConfigurations e poi GraphicsConfiguration#getBounds per ottenere la dimensione e la posizione di ogni monitor, quindi utilizzare la geometria delle superiori per trovare il monitor "a destra". (Si noti che una vera configurazione multi-monitor può metterli in una posizione arbitraria.)

+0

È garantito che il primo dispositivo in GraphicsEnvironment.getLocalGraphicsEnvironment(). GetScreenDevices() restituirà il primo monitor più? Chiedo perché l'uso della "geometria del liceo" è possibile, ma non efficiente se implementato in piattaforme multi monitor dove i monitor variano da 1 a 10. –

+0

Il monitor "La maggior parte" non è definito perché, come ho detto, è possibile posizionare più monitor come vuoi, per esempio 4 monitor ai 4 vertici di un diamante - è il primo "primo più" o quello di sinistra? È possibile utilizzare 'GraphicsEnvironment # getDefaultScreenDevice' per ottenere il monitor, si sa, * predefinito *, ma è possibile impostare qualsiasi monitor come predefinito (almeno in Windows). –

Problemi correlati