2

我正在开发一个需要在屏幕上查找对象的程序,到目前为止工作正常,但是我遇到了多显示器配置的问题。

GraphicsEnvironment.getLocalGraphicsEnvironment().getScreenDevices()-class 能够提供几乎所有我需要在多个屏幕上定义搜索区域的详细信息,但不能提供设备的顺序。(例如,辅助监视器位于主监视器的右侧)。

因此,我正在寻找一种方法来找出 Java 中主要和辅助监视器的屏幕位置。

4

3 回答 3

4

您可以尝试读取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

于 2013-02-04T14:33:23.197 回答
0

您可能必须从每个设备的 x 和 y 坐标中得出这一点。

于 2013-02-04T14:23:53.450 回答
0

x 和 y 坐标会将辅助屏幕放在右侧。

但是,您无法知道主屏幕实际上是在左侧、中间还是右侧。这取决于插入显示器的人。

实际上,有一种方法可以在一个工作站上配置 9 个面板。(我希望我有这个。)所以屏幕方向取决于用户。

于 2013-02-04T14:27:40.983 回答