javauser-interfaceswingawt

Java: Getting resolutions of one/all available monitors (instead of the whole desktop)?


I have two different-sized monitors, connected together using (I believe) TwinView.

I tried

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

and get

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

which is true if you count both monitors together.

Instead of this, I would like to be able achieving one of the following:


Solution

  • you'll want to use the GraphicsEnvironment.

    In particular, getScreenDevices() returns an array of GraphicsDevice objects from which you can read the width/height of the display mode.

    Example:

    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());
    }