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

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

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



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


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

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


欢迎交流,欢迎留言。



评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值