2013-02-26 32 views
0

我正在寫一個遊戲,我剛剛嘗試添加KeyListener。我有使用Java包括KeyListeners的經驗,但由於某種原因,我無法弄清楚爲什麼這段代碼只能在某些時候使用。KeyListener只有時有效

這裏是我的監聽功能:

public void Listener() { 
    System.out.println("[INFO] Listener() Ran."); 

    KeyListener kl = new KeyListener() { 
     public void keyPressed(KeyEvent e) { 
      if(e.getKeyChar()=='a'){ 
       System.out.println("[DEBUG] A Pressed."); 
      } 
     } 

     public void keyReleased(KeyEvent e) { 
     } 

     public void keyTyped(KeyEvent e) { 
     } 
    }; 
    panel.addKeyListener(kl); 
    System.out.println("[DEBUG] panel added KeyListener."); 
} 

此代碼的工作大概只有1中,我跑10次。也許更少。任何想法,爲什麼這是?

+0

當它不起作用時會發生什麼?還有什麼你添加到面板?可能這些控件是否接受密鑰? – 2013-02-26 07:19:04

回答

1

應該在keyTyped中調用getKeyChar。其他兩種方法中的getKeyCode() == KeyEvent.VK_A