如何在Java中使JButton无法点击?

3
我正在寻找.setEnabled(false)的替代方法,以便该按钮不可点击。
我已经了解到可以从按钮中删除ActionListener,但我只想使特定的按钮不可点击,并且也不知道如何做到这一点。
还有,我如何消除单击按钮后的“选中”效果?

2
我正在寻找一个替代.setEnabled(false)的方法,为什么呢?如果按钮看起来正常,用户怎么知道它是不可点击的呢?如果我使用你的应用程序会感到非常沮丧,因为我会认为按钮坏了。不要试图重新发明轮子。 - camickr
因为在我的应用程序中,我有一个JButton网格,它们被用作图标。 - redCodeAlert
1
如果你真的想这样做,你可以在你的ActionListener中做一些类似于if (active) { … }的操作。 - 5gon12eder
所以点击后没有“选中”效果 - 这是什么要求?用户怎么知道图标被点击时发生了什么。此外,不要忘记使用键盘的用户。如果没有视觉指示,用户如何知道已经切换到哪个图标? - camickr
1
“which should not be selected or tabbed into” - 那么如何使用键盘选择图标?你永远不应该只为鼠标设计GUI界面! - camickr
显示剩余2条评论
2个回答

5
因为在我的应用程序中,我有一个用作图标的JButton网格。
那么不要使用按钮,而是使用支持图标的JLabel。
或者可以使用支持网格的JList。
如果您使用JButton,则需要类似以下的代码:
JButton button = new JButton(...);
button.setBorderPainted( false );
button.setFocusPainted( false );

1
我认为问题在于按钮的外观变灰,因为setEnabled是禁用按钮的方法——这意味着使其无法点击(或者你希望它响应键盘输入?)。如果是这种情况,那么您可以使用html更改它的外观:
button.setText("<html><font color=black>3</font></html>");

很遗憾,这里不是让按钮变灰的问题。我想让它不能被点击,这样在点击后就没有“选中”效果了。 - redCodeAlert

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接