我有一个全屏Java应用程序,它将在Windows
7计算机上的8显示器数字标牌类型显示器上运行。我需要能够在特定的物理监视器上显示内容。理想情况下,我希望显示器在“显示器属性”->“设置”中按1-8顺序排列,但是许多拔出/插入和重新排序的尝试均无法通过“显示器属性”->“设置”使物理监视器以任何确定的顺序出现。我可以对其重新排序,但是当我的java程序在显示器上检索信息时,它不在Windows配置它们的布局/顺序中。
GraphicsEnvironment ID返回诸如Device0和Device1之类的字符串,但是它们与Windows
Display编号不匹配,如在Display属性中看到的那样。例如,如果布局为7,4,1,2,3,4,5,6我仍然返回Device0,Device1
…,其中Device0对应于已标识的屏幕1(不是7,它是左侧的第一个屏幕)。有没有一种方法可以查询操作系统以确定显示器的布局和/或某种其他技术来在特定的物理监视器上全屏显示?
您可以获得相对于大型虚拟桌面的屏幕边界:
GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
for (GraphicsDevice gd : ge.getScreenDevices()) {
Rectangle bounds = gd.getDefaultConfiguration().getBounds();
System.out.println(bounds.toString());
}
对于我的设置,这给出了:
java.awt.Rectangle[x=0,y=0,width=1280,height=1024]
java.awt.Rectangle[x=1280,y=304,width=1280,height=720]
您可以使用此信息确定其顺序。例如,如果您完全确定显示器在一个不错的网格中,则可以在右上方的显示器上全屏显示,如下所示:
GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
GraphicsDevice gdUpperRight = null;
Rectangle bUpperRight = null;
for (GraphicsDevice gd : ge.getScreenDevices()) {
Rectangle b = gd.getDefaultConfiguration().getBounds();
if (bUpperRight == null || b.x > bUpperRight.x || b.y > bUpperRight.y) {
bUpperRight = b;
gdUpperRight = gd;
}
}
gdUpperRight.setFullScreenWindow(myFrame);
问题内容: 我想知道自用户上次敲键或移动鼠标以来已经有多长时间了- 不仅在我的应用程序中,而且在整个“计算机”(即显示器)上,以便猜测他们是否仍在计算机,并且能够观察屏幕上弹出的通知。 我只想从(Py)GTK +进行此操作,但是我可以调用特定于平台的函数。理想情况下,我想调用已经从Python包装的函数,但是如果不可能,只要我知道我真正要寻找的是什么,我就不需要C或代码。 在Windows上,我认
我有一个缓冲区与字符编码在Windows 1252。然而,当我用适当的编码创建一个新的字符串时,而不是预期的结果,我经常会得到询问标记,例如。 因此,系统应在其上方显示带“^”的“u”字符。而是显示“?”。 任何想法?
问题内容: 我当前正在编写一个程序,其中用户必须输入10个数字,然后输出将是最高数字和最低数字。我的代码有问题,但找不到。 问题答案: 以不同的方式初始化值: 如果将它们都初始化为零,则永远不会有小于零的“最高”值或大于零的“最低”值
问题内容: 如何确定OrganizationUnit(from )的绝对ID ?当我从树中选择一个节点时,organizationUnit应该显示选定的节点。我不能使用相对ID,因为p:ajax元素与organizationUnit组件不在同一命名容器中。在这种情况下,我需要使用绝对ID。使用Firebug时,组件的ID为。这不是组件的绝对ID吗? 编辑1 custom:include的配置如下:
我的应用程序发出通知。通过点击通知,需要启动app或将其带到前台。通知的意图如下: 在我的应用程序中,我想确定它是通过通知点击启动的还是显示在前面的,所以我在那里使用了putExtra。然后在MainActivity的onResume中检查意图数据。这工作很好,是应用程序启动的通知点击。 做这件事的正确方法是什么?
我正在利用设置。。。方法(例如SetupGetLineText)从inf文件中读取一些内容(我需要它,对通用ini解析器不感兴趣)。这些方法使用Windows-1252编码,我需要将其转换为Unicode。我使用一个字符串得到了这个结果,比如这个(输入类型为string): 编码。UTF8.编码。编码(1252).GetBytes(输入)); 即使这很好,您也可以立即从SetupGetLineTe