2012-08-14 59 views
1

我有兩個JPanel。在第一個中我有3個JButton,第二個是根據從鍵盤讀取的事件繪製圖像。如果我使用setEnabled(false);設置JButton,我可以像我期望的那樣使用鍵盤事件(如果按向上箭頭圖像向上移動),但是當啓用按鈕時,圖像沒有任何反應。即使如果我按下空格鍵,它的行爲就像點擊按鈕一樣。禁用JButtons從鍵盤讀取事件

回答

5

問題不在於JButtons,而可能是因爲您使用了KeyListener。如果您可以避免使用KeyListeners,並且使用Key Bindings,請不要使用Swing GUI的KeyListeners。如果被監聽的組件具有焦點,並且當您有JButton存在時,KeyListeners才能正常工作,它們將獲得焦點並阻止您的KeyListener正常工作。鍵綁定,如果做得對,可以避免這個問題。

例如,請參閱我的代碼示例here

+0

打我吧:) +1 – tenorsax 2012-08-14 03:07:54

+0

使用鍵綁定解決了這個問題。謝謝。但是現在我發現自己正在尋找我需要的每個鑰匙的名字。 – 2012-08-14 04:55:54