这是ButtonGroup的影响吗?

时间:2012-11-28 20:26:15

标签: java swing jtogglebutton

我已经将一个JToggleButton添加到ButtonGroup。

然后我再也不能通过点击它来取消选择这个ToggleButton。

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

有没有简单的方法让按钮正常工作?

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

但我想要的是当A被选中时,可以通过再次点击它来取消选择。

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

选中 - >点击B - >未经选择的

选中 - >点击A - >未选中的(Normal JToggleButton)

enter image description here

2 个答案:

答案 0 :(得分:3)

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

  

您通常应初始化一组单选按钮以便其中一个   被选中。但是,API不会强制执行此规则 - 一组   单选按钮没有初始选择。一旦用户做了一个   选择,从那时开始选择一个按钮。

所以基本上唯一没有选择JToggle按钮的时间是启动时。选择分钟我们只能更改所选内容,我们无法取消选中所有内容。 如果我们在逻辑上考虑它是有道理的,想象我们有2个选项没有 ......当时必须选择/强制执行至少一个选项。或者你必须添加更多的选择,例如没有仍在思考(愚蠢的例子,但我不擅长解释)。

但总会有一个解决方法:

没有支持的API可以取消选择所有按钮。但是,如果你真的想要取消选择所有按钮(不是推荐它),那么在setSelected(null, true)上调用ButtonGroup就行了。

<强>参考:

答案 1 :(得分:1)

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