【问题标题】:Get location of secondary monitor. (right of /left of Primary)获取辅助监视器的位置。 (主要的右侧或/左侧)
【发布时间】:2013-02-04 14:20:03
【问题描述】:

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

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

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

【问题讨论】:

标签: java multiple-monitors


【解决方案1】:

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

【讨论】:

  • 我正在寻找具有多个显示器的最小和最大屏幕值,而 GraphicsConfiguration Javadoc 示例(带有几个小计算)正是我所需要的。谢谢!
【解决方案2】:

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

【讨论】:

  • 是的,这可能会起作用:'screenDevices[i].getDefaultConfiguration().getBounds().x);' 和 'screenDevices[i].getDefaultConfiguration().getBounds().y); ´ 从那里返回绝对位置只是简单的数学运算...非常感谢有时它只是为了显而易见... -.-
【解决方案3】:

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

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

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

【讨论】:

    猜你喜欢
    • 2021-03-21
    • 2021-09-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-28
    • 1970-01-01
    • 2015-04-05
    • 1970-01-01
    相关资源
    最近更新 更多