2013-04-08 99 views
1

所以,我只是想知道。假設我有一個簡單的pong遊戲,其中包括兩個JButtons,它們是按鍵輸入的小球,一個用於定時球的小JButton和一個用於打分的文本框。當我做到這一點時,我必須先點擊按鈕,然後才能移動它。有沒有辦法讓程序運行時默認選中該按鈕,這樣我就可以直接按下鍵來直接移動它,而不必先點擊它。謝謝。默認選中JButton

+0

調整你邏輯,以便將JButton內的代碼是在正常程序流程內執行。 – BlackBox 2013-04-08 13:25:11

+1

yes可以使用KeyBindings(pong遊戲)和鍵盤上的UP和DOWN鍵,那麼只需要正確設置InputMap,ActionMap到所需的容器就可以不需要任何焦點(爲了避免與另一個可聚焦的JComponents保持一致,是....) – mKorbel 2013-04-08 13:37:56

回答

-1

我想你可以在requestFocus()中默認選擇一個。 喜歡的東西:

defaultJButton.requestFocus(); 

你應該做的是在初始化或要重新啓動每一次,重置狀態或類似。

+0

-1,不要使用requestFocus()。閱讀該方法的API文檔。它會建議使用適當的方法。 – camickr 2013-04-08 15:15:53

3

使用JFrame的根窗格的setDefaultButton方法:

myFrame.getRootPane().setDefaultButton(button); 
+1

您需要設置幀的「根目錄」的默認按鈕。 – camickr 2013-04-08 15:16:26

+0

對於[示例](http://stackoverflow.com/a/3591230/230513)。 – trashgod 2013-04-08 15:40:06

0

在以下代碼constructor使用使得按鈕後幀:

this.getRootPane().setDefaultButton(button);