嘿我试图让控制台打印出“持有”,当一个键被举行。我正在使用小程序 ,因为此代码是要测试小程序中的密钥。如果任何具有良好Java知识的人都可以向我解释发生了什么事情,我将非常感激。keyListener和线程不工作
我敢肯定,问题可能与线程有关。
public class appletkeytest extends Applet implements KeyListener, Runnable {
boolean held;
public void init(){
addKeyListener(this);
Thread t = new Thread(this);
t.start();
}
public void keyTyped(KeyEvent e) {
}
public void keyPressed(KeyEvent e) {
held = true;
System.out.println(held);
}
public void keyReleased(KeyEvent e) {
held = false;
System.out.println(held);
}
public void run() {
System.out.println(held);
while(held){
System.out.println("holding");
}
}
}
'while(held)'应该是'while(true)',你可能需要在附加条件下打破循环。这里发生了什么,甚至在你按下键之前已经执行了'run'方法。 – 2014-10-31 22:40:10