双屏,多屏情况下,获取屏幕的坐标

项目需要,要在不同的屏幕中显示不同的内容。

我外接了一个显示器,在这里称为主屏和次屏。

双屏,多屏情况下,获取屏幕的坐标_第1张图片


我的次屏比主屏大些(废话)。


你得有个概念,就是这两个屏幕是无缝连接的。你可以把一个窗口拖到主屏与次屏之间,你就看到效果了。

整个桌面的图标放置都是基于以主屏的左上角的坐标来定的,主屏的左上角的坐标为(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);


欢迎交流,欢迎留言。



你可能感兴趣的:(双屏,多屏情况下,获取屏幕的坐标)