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

2022-09-02 21:36:23

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

我试过了

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

并获取

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

如果将两个监视器一起计算在内,则情况确实如此。

与此相反,我希望能够实现以下目标之一

  • 获取当前显示器的分辨率
  • 获取主显示器的分辨率

答案 1

您将需要使用图形环境

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

例:

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

答案 2

推荐