项目需要,要在不同的屏幕中显示不同的内容。
我外接了一个显示器,在这里称为主屏和次屏。
我的次屏比主屏大些(废话)。
你得有个概念,就是这两个屏幕是无缝连接的。你可以把一个窗口拖到主屏与次屏之间,你就看到效果了。
整个桌面的图标放置都是基于以主屏的左上角的坐标来定的,主屏的左上角的坐标为(0,0)
我这里的次屏是在主屏的右边,所以坐标都是正数。如果我把次屏设置成主屏,即现在的2设置成1,现在的1设置成2,次屏在主屏的左边,那么次屏的坐标是负数
现在 我的主屏的屏幕参数是1366*768 主屏的左上角为(0,0) 所以次屏的坐标是(1366,0)
java里面有专门针对处理多屏的工具类 GraphicsEnvironment
GraphicsEnvironment ge = GraphicsEnvironment
.getLocalGraphicsEnvironment();
GraphicsDevice[] gds = ge.getScreenDevices();
for(GraphicsDevice gd:gds){
int w = gd.getDisplayMode().getWidth();
int h = gd.getDisplayMode().getHeight();
System.out.println(w+"::"+h);
}
通过以上代码就可以得到双屏每个屏幕的硬件参数,就是屏幕的长和宽。其实gds[0]是你的主屏。
再通过下面的这段代码就可以得到每个屏幕的坐标。这段代码可以放到上面的for里面打印一下,看看坐标。
GraphicsConfiguration gc = gd.getDefaultConfiguration();
System.out.println(gc.getBounds().x);
System.out.println(gc.getBounds().y);
欢迎交流,欢迎留言。