我正在开发一个需要在屏幕上查找对象的程序,到目前为止工作正常,但我遇到了多显示器配置的问题。
GraphicsEnvironment.getLocalGraphicsEnvironment().getScreenDevices()
- 类能够提供我在多个屏幕上定义搜索区域所需的几乎所有细节,但不能提供设备的顺序。 (例如,辅助监视器是主要的)。
因此,我正在寻找一种方法来查找Java中主要和辅助监视器的屏幕位置。
答案 0 :(得分: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
答案 1 :(得分:0)
您可能必须从每个设备的x和y坐标派生出来。
答案 2 :(得分:0)
x和y坐标会将辅助屏幕放在右侧。
但是,您无法知道主屏幕是在物理上位于左侧,中间位置还是右侧。这取决于插入显示器的人。
实际上,有一种方法可以在一个工作站上配置9个面板。 (我希望我有这个。)因此,屏幕方向取决于用户。