java - 将 KeyListner 添加到 robot.mousePress 和 mouseRelease

标签 java android eclipse

我将一些代码放在一起来制作这个 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/

相关文章:

java - Hibernate @OneToOne Mapping 不加入专栏?

java - Android Matrix 如何使用指定的点进行 postRotate?

Java 如何美化 Eclipse IDE 中的 java 代码

java - 如何在 Eclipse 中将 Java 属性文件添加到我的 Java 项目中

java - 如何通用地实现存储在 HashMap 中的调用方法?

java - 如何设置<s :param> value of <s:url> tag dynamically using javascript in struts2

android - 如何设置android推送通知的颜色和图标?

android - PeriodicSync 不适用于 android kitkat 和 lollipop

Android - 监控互联网连接状态

eclipse - 无法打开 drl 文件,因为它不存在