2013-04-08 98 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);