【发布时间】:2017-04-04 22:57:03
【问题描述】:
我试图在 JavaFX 8 中获得一组RadioButtons,其功能最多可以选择一个,但也可以删除任何选择。
似乎RadioButton 只支持取消选择,只要它没有定义ToggleGroup。但是,如果没有定义ToggleGroup,则可以选择多个RadioButton。
我尝试为每个按钮的onAction 事件添加一个监听器:
for (final RadioButton rb : myRadioButtons) {
rb.setToggleGroup(myToggleGroup);
rb.setOnAction(event -> {
if (rb.isSelected()) {
myToggleGroup.selectToggle(null);
}
});
}
但是,有两个问题导致此尝试失败 - 第一个是 selected 属性似乎在 action 事件触发之前更新,因此条件始终为真,无法选择 任何按钮。
第二个问题是action 事件即使在单击按钮时被选中,也不会被触发。
为mouseClicked 事件添加一个监听器也好不到哪里去,因为它也仅在所选按钮更改后才会触发。
有没有一种直接的方法来实现一组RadioButtons,最多选择一个?或者是唯一支持的选项来处理ToggleGroup 的职责与更改侦听器等?
【问题讨论】:
-
ToggleButton提供您正在寻找的功能。如果您希望它看起来像一个单选按钮,我想您可以考虑使用 RadioButton 中的 CSS 来自定义一个切换按钮。 (未经测试。可能很棘手。)
标签: javafx radio-button togglebutton