2011-11-26 125 views
0

我使用鍵綁定上的鍵事件,因爲我不明白鍵綁定。addKeyListener不能按預期工作

我做了一個JFrameJPanel與Jbutton。

我在框架的類中將JPanel作爲面板實例,將JButton作爲面板類中的按鈕。我繼續編輯小組的班級。

如果我addKeyListener與一個新的​​只是打印「按鍵」,沒有任何反應,如果我輸入任何東西。但如果我做button.addKeyListener與相同的通用​​,按下「按鍵」將打印時,我按下一個鍵。

我認爲這與實例有關。所以我的第一個問題是:我如何讓組件添加一個關鍵偵聽器到自己和/或爲什麼不調用addKeyListener甚至this.addKeyListener這樣做?

當我添加一個關鍵偵聽器的代碼繼續(因爲它可能應該),所以我試着做while(some boolean) thread.sleep(1000)只是當按鍵被按下時,關鍵偵聽器改變布爾值。我只是想讓我的代碼等到一個按鍵被按下。我知道這並不多,但我的問題是:是否有更好或更簡潔的方法來暫停方法/等待輸入?

回答

2

如果我用一個新的keyAdapter添加了一個新的keyAdapter,它只是打印「按下按鍵」,如果我輸入任何內容,則什麼也不會發生。

可能是因爲組成部分沒有焦點。 KeyEvents僅被分派給具有焦點的組件。這不是關鍵綁定的問題,因爲即使組件沒有焦點,它們也可以處理事件。

+0

謝謝。 (還有5個去...) – Jeremy