2

我已将 JToggleButton 添加到 ButtonGroup。

然后我不能再单击一次来取消选择这个 ToggleButton。

我很确定 JToggleButton 可以通过单击它来取消选择。

有什么简单的方法可以让 Button 正常工作吗?

Basic ButtonGroup 工作正常(单击 B 并取消选择 A)。

但是我想要的是选择A时,可以再次单击它来取消选择。

简而言之,我希望这两种情况都有效。

A选中-->点击B-->A未选中

A selected--> click A --> A unselected (Normal JToggleButton)

在此处输入图像描述

4

2 回答 2

3

简而言之,是的......没有ButtonGroup一切都按预期工作,但是:

您通常应该初始化一组单选按钮,以便选择一个。但是,API 不强制执行此规则 - 一组单选按钮不能有初始选择。一旦用户做出选择,从那时起,恰好一个按钮被选中。

所以基本上唯一一次不能JToggle选择按钮是在启动时。选择一分钟后,我们只能更改所选内容,不能取消选择所有内容。如果我们从逻辑上考虑它是有道理的,想象我们有 2 个选项......当时必须选择/执行至少一个选项。或者您必须添加更多替代方案,例如yesno并且仍在思考(愚蠢的示例,但我不擅长解释)。

但总有一种解决方法:

不支持取消选择所有按钮的 API。但是,如果您真的想取消选择所有按钮(不建议这样做),调用 setSelected(null, true)应该ButtonGroup可以解决问题。

参考:

于 2012-11-28T20:37:16.380 回答
1

您可能会在两个按钮的取消选择事件上执行一个ButtonGroup.clearSelection()但随后,您可以省略 ButtonGroup(误用?)并简单地听选择状态。

于 2012-11-28T21:13:09.947 回答