从同一组中获取所有选定的切换按钮

时间:2019-05-27 12:12:28

标签: java javafx toggle

我有3个切换按钮(FXML):

org.asciidoctor.jruby.internal.AsciidoctorCoreException: org.jruby.exceptions.NoMethodError: (NoMethodError) undefined method `convert_inline_text' for #<Asciidoctor::Converter::Html5Converter:0x10b4e7f8>
Did you mean?  convert_inline_button
               convert_inline_quoted
               convert_inline_menu
               convert_inline_image
               convert_inline_break
               convert_inline_kbd

这些是用户可以选择或取消选择的几个选项。多选也应该是可能的。
为了获得所有选定的切换,我将它们放入一个切换组:

<ToggleButton fx:id="toggle1" text="Option 1" />
<ToggleButton fx:id="toggle2" text="Option 2" />
<ToggleButton fx:id="toggle3" text="Option 3" />

但是,在这种情况下,一次只能选择1个按钮,而不能选择2个或3个。

如何从同一组中获取所有选定的切换按钮? 因此,基本上,其原理与复选框相同。

1 个答案:

答案 0 :(得分:2)

您可以使用CheckBox并使用CSS使其看起来像单选按钮。 要获取所有选中的复选框,您可以创建一个ObservableSet之类的可观察的集合,并将侦听器分配给该复选框,当选中一个复选框时,将其添加到该集合中,并在未选中该复选框时将其删除

ObservableSet<CheckBox> selectedCheckBoxes = FXCollections.observableSet();
CheckBox checkBox1 = new CheckBox();
checkBox1.selectedProperty().addListener((observable, oldValue, selectedNow) -> {
    if (selectedNow) {
        selectedCheckBoxes.add(checkBox1);
    } else {
        selectedCheckBoxes.remove(checkBox1);
    }
});