2011-11-07 71 views
1

我有一個按鈕,它設置定時器的時間。所以現在我推。定時器上的按鈕更改時間,並且仍處於選中狀態。在這個框架中,我有keyListener,所以當我用start啓動空間Timer時,現在當我推動空間時,它再次按下這個按鈕,因爲它仍然被選中。當我推動它時,如何改進這個按鈕,它不會被選中?如何取消選擇JButton

回答

4

我不確定是否完全理解了您的問題。 如果你想在一個JButton禁用點擊:

JButton b = new JButton(); 
b.setEnabled(false); 

如果您要取消選擇它:

b.setSelected(false); 

你也可以找到有用防止一鍵獲得焦點:

b.setFocusable(false); 
+0

如果我正確理解樓主的帖子,我覺得他的問題將與你最後的建議來解決:'setFocusable(假);'。 1+。 –

+0

是值得關注的是我尋找thx – hudi

0

您可以通過在KeyboardFocusManager中調用正確的方法來改變焦點

KeyboardFocusManager kfm = KeyboardFocusManger.getCurrentKeyboardFocusManager(); 
kfm.focusNextComponent(); 

這導致焦點轉移到下一個組件,無論它是什麼。這具有獨立於組件的優點,所以如果UI改變,這仍然移動到「下一個」組件,而不是你指定的用於接收焦點的特定組件。

如果您的問題是您不希望用戶在發生其他事情時按下按鈕,則應該考慮禁用該按鈕(如前一個答案中所述),以使其無法以任何方式激活。當然,一旦合法再次使用,您需要重新啓用它。

RC