Java: Ottenere risoluzioni di uno / tutti i monitor disponibili (invece di tutto il desktop)?

StackOverflow https://stackoverflow.com/questions/877570

Domanda

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

Ho cercato

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

e ottenere

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

che è vero se si contano entrambi i monitor insieme .

Al posto di questo, vorrei poter raggiungere una di quanto segue:

  • ottenere la risoluzione del monitor corrente
  • ottenere la risoluzione del monitor principale
È stato utile?

Soluzione

si vorrà utilizzare il GraphicsEnvironment .

In particolare, getScreenDevices () restituisce un array di GraphicsDevice oggetti da cui si può leggere la larghezza / altezza dalla 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());
} 
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top