我尝试将KeyListener
放入项目中名为Thread
的新Keys
中,因为我的主要线程已经在循环中。所以我希望这个方法在按下键时返回boolean
。我对Java很陌生,很抱歉,如果这只是一个愚蠢的错误。
发
public class Keys implements KeyListener, Runnable {
private boolean w = false;
//private boolean ... same stuff
public void keyTyped(KeyEvent keyEvent) {
//nothing in here ;)
}
public void keyPressed(KeyEvent keyEvent) {
//set right boolean true = no problem
}
public void keyReleased(KeyEvent keyEvent) {
//set right boolean false = no problem
}
public void run() {
//nothing to do here
}
public boolean isWPressed(){
return w;
}
//public boolean is...() [more of them.]
}
我很感激一个例子。这是我学习的最佳方式。
答案 0 :(得分:1)
您的程序不会调用监听器。当发生适当的事件时,Java VM会调用Listener。例如:假设您为KeyListener
写了TextField
。如果用户开始输入此TextField
,则运行系统将调用侦听器中的相应方法。因此,监听器由VM调用,而不是由您的代码调用,因此您无法为onw线程编写它。 This link很好地介绍了Java中的事件和监听器。
修改强>
正如SJuan76所提到的,你可以从侦听器启动单独的线程来做你想要的东西。
答案 1 :(得分:0)
您正在使用的Java Key Listener已经在其自己的线程上运行。没有必要试着把它放在它自己的主题中。
然而,阅读注释,如果你想在按下某个键时启动一个新线程,你可以。以下是您可以采用的方法:
Thread thread = new Thread(this, "Keyboard Thread");
希望这有帮助!