2012-06-02 36 views
2

我正在開發一個java應用程序。我想在箭頭鍵上實現一個KeyListener。 我有一個JFrame的延伸和實現的ActionListener將Arrow Keylistener添加到實現ActionListener的Jframe中

public class MyClass extends JFrame implements ActionListener{ 
} 

我怎麼能在這個框架中添加鍵盤監聽器上的箭頭鍵的一類?

我試着做下面的構造,但沒有奏效:

this.addKeyListener(new KeyListener() { 

     @Override 
     public void keyPressed(KeyEvent e) { 
      if(e.getKeyCode() == KeyEvent.VK_UP) 
      { 
       //DO Some things 
      } 
     } 

     @Override 
     public void keyTyped(KeyEvent e) { 

     } 

     @Override 
     public void keyReleased(KeyEvent e) { 

     } 

    }); 

任何幫助是極大的讚賞。 謝謝

回答

5

這可以通過讓你的JFrame焦點集中後讓焦點解決,但是一旦失去焦點,KeyListener將無法工作。我的主要建議是,您不使用KeyListener,而是使用Key Bindings,因爲這些函數是更高級別的構造,並且適用於Swing應用程序,特別是在獲得和失去焦點方面。在這個主題上有很多類似的帖子,如果你堅持下去,我會給你一些鏈接。

+3

鍵綁定是遠遠超過KeyListener的更有用 – John