Java 16 Robot.mouseMove 移动到错误的位置

问题描述

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

我该如何解决

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)