我正在开发一个需要在屏幕上查找对象的程序,到目前为止工作正常,但是我遇到了多显示器配置的问题。
GraphicsEnvironment.getLocalGraphicsEnvironment().getScreenDevices()
-class 能够提供几乎所有我需要在多个屏幕上定义搜索区域的详细信息,但不能提供设备的顺序。(例如,辅助监视器位于主监视器的右侧)。
因此,我正在寻找一种方法来找出 Java 中主要和辅助监视器的屏幕位置。
我正在开发一个需要在屏幕上查找对象的程序,到目前为止工作正常,但是我遇到了多显示器配置的问题。
GraphicsEnvironment.getLocalGraphicsEnvironment().getScreenDevices()
-class 能够提供几乎所有我需要在多个屏幕上定义搜索区域的详细信息,但不能提供设备的顺序。(例如,辅助监视器位于主监视器的右侧)。
因此,我正在寻找一种方法来找出 Java 中主要和辅助监视器的屏幕位置。
您可以尝试读取GraphicsDevice.html#getIDstring()
值以确定监视器的 ID。
GraphicsEnvironment ge = GraphicsEnvironment.
getLocalGraphicsEnvironment();
GraphicsDevice[] gs = ge.getScreenDevices();
for (int j = 0; j < gs.length; j++) {
GraphicsDevice gd = gs[j];
System.out.println("ID#: " + gd.getDeviceID());
}
给我这个:
ID#: \Display0
ID#: \Display1
请记住,有时辅助监视器可能位于主监视器的左侧。在这种情况下,它将具有负界限。
为了确定屏幕区域的整个边界,您可以使用 JDK Javadocs 站点上提供的示例:
GraphicsConfiguration
您可能必须从每个设备的 x 和 y 坐标中得出这一点。
x 和 y 坐标会将辅助屏幕放在右侧。
但是,您无法知道主屏幕实际上是在左侧、中间还是右侧。这取决于插入显示器的人。
实际上,有一种方法可以在一个工作站上配置 9 个面板。(我希望我有这个。)所以屏幕方向取决于用户。