嘿我試圖讓控制檯打印出「持有」,當一個鍵被舉行。我正在使用小程序 ,因爲此代碼是要測試小程序中的密鑰。如果任何具有良好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