我有一个旧项目(使用java 8
),其中包含我想在项目中重用的部分代码,基于java 16
:
Point p = new Point(x, y);
while (!MouseInfo.getPointerInfo().getLocation().equals(p)) {
robot.mouseMove(p.x, p.y);
}
并且它不能正常工作java 16
,即鼠标没有移动到指定点(java 8
一切正常)。
经过几次实验,我认为这是因为 Windows 显示缩放(125%),因为我检查了屏幕尺寸:
Toolkit.getDefaultToolkit().getScreenSize()
并在java 8
此返回正确的[width=1920,height=1080]
但在java 16
我得到[width=1536,height=864]
= [1920, 1080] / 1.25
我真的无法理解代码如何仅仅因为不同的 JDK 而产生不同的结果
我该如何解决?