Java: ottenere risoluzioni di uno / tutti i monitor disponibili (invece dell'intero desktop)?


Ho due monitor di dimensioni diverse, collegati tra loro usando (credo) TwinView.

Ho provato

System.out.println(Toolkit.getDefaultToolkit().getScreenSize());

E ottieni

java.awt.Dimension[width=2960,height=1050]

Che è vero se si contano entrambi i monitor insieme.

Invece di questo, mi piacerebbe essere in grado di ottenere uno dei seguenti:

  • ottenere la risoluzione del monitor corrente
  • ottenere la risoluzione del monitor principale
Author: RichieHindle, 2009-05-18

1 answers

Ti consigliamo di utilizzare il GraphicsEnvironment.

In particolare, getScreenDevices() restituisce un array di GraphicsDevice oggetti da cui è possibile leggere la larghezza/altezza della modalità di visualizzazione.

Esempio:

GraphicsEnvironment g = GraphicsEnvironment.getLocalGraphicsEnvironment();
GraphicsDevice[] devices = g.getScreenDevices();

for (int i = 0; i < devices.length; i++) {
    System.out.println("Width:" + devices[i].getDisplayMode().getWidth());
    System.out.println("Height:" + devices[i].getDisplayMode().getHeight());
} 
 21
Author: z -, 2015-04-20 08:01:54