我最近一直试图自动化我制作的程序,我遇到了一个问题,robot.mouseMove(100,100)不会将鼠标发送到100,100.
我做了这个简单的程序来展示这个:
new Robot().mouseMove(100, 100);
System.out.println(MouseInfo.getPointerInfo().getLocation().getX() + " , "
+ MouseInfo.getPointerInfo().getLocation().getY());
Run Code Online (Sandbox Code Playgroud)
每次运行时,此代码都会产生不同的结果:
54.0 , 54.0
0.0 , 0.0
58.0 , 58.0
Run Code Online (Sandbox Code Playgroud)
当你把它放在一个循环中时,鼠标接近正确的位置.代码:
Robot b = new Robot();
for (int i = 1; i < 10; i++) {
b.mouseMove(100, 100);
System.out.println("Attempt "+i+" : "+MouseInfo.getPointerInfo().getLocation().getX() + " , "
+ MouseInfo.getPointerInfo().getLocation().getY());
}
Run Code Online (Sandbox Code Playgroud)
结果:
Attempt 1 : 12.0 , 21.0
Attempt 2 : 143.0 , 139.0
Attempt 3 : 79.0 , 81.0
Attempt 4 : 110.0 , 109.0
Attempt 5 : 96.0 …Run Code Online (Sandbox Code Playgroud)