我将一些代码放在一起来制作这个 robot.mousePress 和 robot.mouseRelease 程序,我可以将其设置为每 500 毫秒点击一次。唯一的问题是,当我打开程序时,它工作得很好。关掉它是个问题。我必须完全退出 eclipse 才能让程序停止。
我将如何以及在代码中的何处添加 keyListner,以便我可以按下按钮停止程序运行而无需退出 ADT?
import java.awt.AWTException;
import java.awt.Robot;
import java.awt.event.InputEvent;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class AutoClicker {
public static int rate = 0;
public static void main (String[] args) {
while (rate == 0){
try{
System.out.println("Speed of the auto-clicker (in miliseconds):");
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
try {
rate = Integer.parseInt(in.readLine());
if (rate < 500) {
rate = 0;
System.out.println("Must be at least 500 miliseconds.");
}
} catch (NumberFormatException ex) {
System.out.println("Error - please try again.");
}
} catch (IOException e) {}
}
try {
Robot robot = new Robot();
while (true) {
try {
Thread.sleep(rate);
robot.mousePress(InputEvent.BUTTON1_MASK);
robot.mouseRelease(InputEvent.BUTTON1_MASK);
} catch (InterruptedException ex) {}
}
}catch (AWTException e) {}
}
}
最佳答案
您可以使用它添加全局 key 监听器。
How can I listen for key presses (within Java Swing) across all components?
最后的无限 while 循环是这里的罪魁祸首。将其更改为 boolean 变量,您的监听器会将其设置为 false。
关于java - 将 KeyListner 添加到 robot.mousePress 和 mouseRelease,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20686110/