2011-11-07 70 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