Java:获取一个/所有可用监视器(而不是整个桌面)的分辨率?

我有两个不同大小的显示器,使用(我相信)TwinView连接在一起。

我试过了

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

得到

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

如果将两个显示器统计在一起 ,则为真。

取而代之的是,我希望能够实现以下目标之一

  • 获得当前监视器的分辨率
  • 获得主显示器的分辨率

你会想要使用GraphicsEnvironment 。

特别是,getScreenDevices()返回一个GraphicsDevice对象数组,您可以从中读取显示模式的宽度/高度。

例:

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