2013-02-12 78 views
0

我创建了一个程序,使用Robot类在记事本中输出一些文本。将KeyListener添加到线程中

public class Main extends Thread implements KeyListener { 

    public Main() { 
    addKeyListener(this); 
    ... 
    } 

我想通过点击某个键来阻止它,这可能吗?我试图实现它并添加它,但它是一个编译错误。

我的课是Thread的一个子类。

+1

”*我试图实现它并添加它,但它是一个编译错误。*“=>在这种情况下,显示您的代码肯定会帮助... – assylias 2013-02-12 19:25:36

+0

public class Main extends Thread implements KeyListener .... on构造函数我试过了:addKeyListener(this)这是一个编译错误 – 2013-02-12 19:26:39

+1

请编辑你的问题并在其中添加代码。 – Saju 2013-02-12 19:30:25

回答

0

公共类主要继承Thread实现KeyListener的{

如果你看一下javadoc for the Thread class,你会看到,它不包含addKeyListener方法,因此编译错误。

但是请注意,使用java.awt.Robot当你担心发行KeyEvents而不是倾听他们:

Robot robot = new Robot(); 
// Create a delay of 5 sec so that you can open notepad 
robot.delay(5000); 
robot.keyPress(...); 

编辑:要退出,你可以模拟组合键​​F4

robot.keyPress(KeyEvent.VK_ALT); 
robot.keyPress(KeyEvent.VK_F4); 
robot.keyRelease(KeyEvent.VK_ALT); 
robot.keyRelease(KeyEvent.VK_F4); 

请注意键释放命令。这对于从以前的键组合中解除键状态是必要的。 “

+0

我会在你可能的时候接受你的答案,同时你有什么想法可以实现它吗?设置某种倾听者?我的意思是我正在寻找一种方法来通过键盘关闭程序 – 2013-02-12 19:32:48

+0

您可以发送ALT + F4。查看更新... – Reimeus 2013-02-12 19:47:47