如何取消选择JButton

时间:2011-11-07 22:36:49

标签: java swing focus jbutton

我有一个按钮,可以在Timer上设置时间。所以现在我推。计时器上的按钮更改时间仍然是选中状态。在这个框架中,我有keyListener,所以当我用启动推动空间计时器时,现在当我推动空间时,它再次按下这个按钮,因为它仍然被选中。当我按下它时如何改进此按钮,它将不会被选中?

2 个答案:

答案 0 :(得分:5)

我不确定你完全理解你的问题。 如果你想禁用点击JButton:

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

如果您想取消选择它:

b.setSelected(false);

你也可以找到有用的防止按钮获得焦点:

b.setFocusable(false);

答案 1 :(得分:0)

您可以通过在KeyboardFocusManager中调用正确的方法来更改焦点

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

这会导致焦点移动到下一个组件,无论它是什么。这样做的好处是可以独立于组件的内容,因此如果UI发生变化,它仍然会移动到“下一个”组件,而不是您指定用于接收焦点的特定组件。

如果您的问题是您不希望用户在其他事情发生时按下按钮,则应考虑禁用该按钮(如上一个答案中所述),以便无法以任何方式激活它。当然,只要再次使用它就需要再次启用它。

RC