2012-02-23 119 views
1

我有一個JPanel包含做的東西其他幾個對象。我將通過討論一些圓對象(由我創建的圓類定義)和一個方形對象(類似)來簡化示例。線程運行時按下按鍵 - 如何捕捉按鍵?

圓圈在屏幕上隨機移動,而方塊坐在它的位置。我的意圖是使用箭頭按鈕移動方塊。 目前的設計是有包含設置它的run方法裏面的「刷新率」延遲while循環線程。

我正在嘗試每種我知道的方法來捕獲箭頭鍵,並圍繞屏幕運行球時移動正方形。

如何捕獲按鍵(示例中的箭頭),以便我可以知道將我的廣場移動到哪裏? 我試圖實現在jpanelkeylistener,但沒有奏效。當我試圖在運行中使用KeyEvent時,我遇到了一個異常。

請救救我。 :)

編輯:

謝謝你提供的信息。我想進一步的幫助來解決這個問題 -

可以說我有下面的代碼:

this.getInputMap().put(KeyStroke.getKeyStroke("UP"), "actionName"); 
this.getInputMap().put(KeyStroke.getKeyStroke("DOWN"), "actionName"); 

    this.getActionMap().put("actionName", 
      new AbstractAction("actionName") { 
       public void actionPerformed(ActionEvent evt) { 
        //dostuff 
     } 
    } 
); 

我怎麼UP和DOWN機區別?我需要改變什麼?

謝謝!我有點新手,我知道:)

+0

請編輯你的問題顯示異常文本和堆棧跟蹤的第一對數行。 – Gray 2012-02-23 18:03:21

+0

使用的KeyEventDispatcher: http://stackoverflow.com/questions/286727/java-keylistener-for-jframe-is-being-unresponsive (第二個答案) – kajacx 2012-02-23 18:34:48

回答