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