1

我有一个旧项目(使用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 而产生不同的结果

我该如何解决?

4

0 回答 0