我希望在5秒(5000毫秒)后将光标从坐标(500,500)移动到新坐标(1000,200)。我希望每次程序运行时都会发生这个事件,这就是为什么我做了一个循环。但是当我运行程序时,光标只出现在坐标(500,500)处,并且它不会移动到坐标(1000,200)。我需要建议。
import java.awt.Robot;
import java.util.Random;
public class MouseMovers {
public static int SECONDS = 5000;
public static int MAX_Y =500;
public static int MAX_X =500;
public static void main(String [] args) throws Exception {
Robot robot = new Robot();
Robot rob=new Robot();
while (true) {
robot.mouseMove(MAX_X, MAX_Y);
Thread.sleep(SECONDS);
rob.mouseMove(1000,200);
}
}
}
答案 0 :(得分:4)
您的代码每五秒钟将鼠标移动到(1000,200),然后立即移动到(500,500)。在第二次移动后添加另一个延迟,使鼠标停留在该位置一段时间:
while (true) {
robot.mouseMove(MAX_X, MAX_Y);
Thread.sleep(SECONDS);
robot.mouseMove(1000, 200);
Thread.sleep(SECONDS);
}
顺便说一下:你只需要一个机器人。
答案 1 :(得分:0)
while (true) {
robot.mouseMove(MAX_X, MAX_Y);
Thread.sleep(SECONDS);
rob.mouseMove(1000,200);
}
这是一个循环。这意味着robot.mouseMove(MAX_X,MAX_Y)将在rob.mouseMove(1000,200)之后执行。
只需删除循环。另请注意,您只需要一个Robot类的实例。
答案 2 :(得分:0)
拥有两个Robot
对象是没用的。
此外,您不必在rob.mouseMove(1000, 200)
和robot.mouseMove(MAX_X, MAX_Y)
之间等待。
然后正确的代码应该是:
import java.awt.Robot;
import java.util.Random;
public class MouseMovers {
public static int MILLISECONDS = 5000;
public static int MAX_Y = 500;
public static int MAX_X = 500;
public static int NEW_MAX_X = 1000;
public static int NEW_MAX_Y = 2000;
public static void main(String [] args) throws Exception {
Robot robot = new Robot();
while (true) {
robot.mouseMove(MAX_X, MAX_Y);
Thread.sleep(MILLISECONDS);
robot.mouseMove(NEW_MAX_X, NEW_MAX_Y);
Thread.sleep(MILLISECONDS);
}
}
}