[Java]getScreenSize获取屏幕分辨率宽高小于正常值

最近在做一个Java程序,想获取屏幕的宽高信息。搜索一番,一般都是通过以下的代码获取宽高信息。

Dimension dim = Toolkit.getDefaultToolkit().getScreenSize();
int width = dim.width;
int height = dim.height;

 但是我的系统分辨率是1920*1080,获取到的数值却是1536*864。原因应该是Windows10系统的“显示设置”中将“缩放与布局”设置为125%(1920÷1536=1.25,1080÷864=1.25)。
导致上面的代码不适用于这种情况下的获取屏幕的宽高。

 最后在Stackoverflow中找到另一种获取屏幕宽高的方式。

//获取默认屏幕
GraphicsDevice graphDevice = GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice();
DisplayMode disMode = graphDevice.getDisplayMode();
int width = disMode.getWidth();
int height = disMode.getHeight();

这种方式原本是为了获取具有多屏幕情况下的屏幕分辨率,但是对于Windows10中修改了“缩放与布局”的情况也适用。
不知道是否有其他方式来处理。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值