2014-02-28 40 views
1

我有两个显示器,一个是1440 * 900,另一个是1920 * 1080。我可以重新排列在显示器那样的许多方面:如何检测多显示器系统中的屏幕位置?

enter image description here

或像这样:

enter image description here

另外,我可以镜面屏幕以及。我怎样才能使用纯Java获得这些信息?谢谢。

+1

很确定只有显示驱动程序会有这种信息。认为这是你可以在Java中做的最好的:http://stackoverflow.com/questions/877570/java-getting-resolutions-of-one-all-available-monitors-instead-of-the-whole-de – Durandal

+0

@ JasonC是的,我不知道普通的Java可以做的事情远远超出我们发布的内容。 Android对这种事情有更多的支持,但是不要认为它符合'纯java' – Durandal

+0

@Durandal哦,很好的链接。是的,除了你可以使用'getDefaultConfiguration()。getBounds()'来获得监视器的实际相对坐标外,你可以做这个链接中的内容。如果你愿意的话,你可以用它来生成TedWong发布的图片。 –

回答

3

退房GraphicsEnvironment.getScreenDevices(),你可以从每个设备得到屏幕边界矩形,如:

GraphicsDevice[] screens = GraphicsEnvironment 
    .getLocalGraphicsEnvironment() 
    .getScreenDevices(); 

for (GraphicsDevice screen:screens) 
    System.out.println(screen.getDefaultConfiguration().getBounds()); 

在我的双显示器系统会显示:

java.awt.Rectangle[x=0,y=0,width=1600,height=900] 
java.awt.Rectangle[x=-320,y=-1200,width=1920,height=1200] 

您可以使用getDefaultScreenDevice()图哪一个是主监视器?您可以从GraphicsDevice获得很多其他信息,这些信息可能有用。

相关问题