从同一组中获取所有选定的切换按钮
Getting all selected toggle buttons from same group
我有 3 个切换按钮 (FXML):
<ToggleButton fx:id="toggle1" text="Option 1" />
<ToggleButton fx:id="toggle2" text="Option 2" />
<ToggleButton fx:id="toggle3" text="Option 3" />
这些是用户可以 select 或取消 select 的几个选项。多个 selection 也应该是可能的。
为了获得所有 selected 切换,我将它们放在一个切换组中:
final ToggleGroup toggleGroup = new ToggleGroup();
toggle1.setToggleGroup(toggleGroup);
toggle2.setToggleGroup(toggleGroup);
toggle3.setToggleGroup(toggleGroup);
但是,在那种情况下,一次只能select编辑 1 个按钮,而不是 2 或 3 个。
如何从同一组中获取所有 selected 切换按钮?
所以,基本上,与复选框相同的原理。
您可以使用 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);
}
});
我有 3 个切换按钮 (FXML):
<ToggleButton fx:id="toggle1" text="Option 1" />
<ToggleButton fx:id="toggle2" text="Option 2" />
<ToggleButton fx:id="toggle3" text="Option 3" />
这些是用户可以 select 或取消 select 的几个选项。多个 selection 也应该是可能的。
为了获得所有 selected 切换,我将它们放在一个切换组中:
final ToggleGroup toggleGroup = new ToggleGroup();
toggle1.setToggleGroup(toggleGroup);
toggle2.setToggleGroup(toggleGroup);
toggle3.setToggleGroup(toggleGroup);
但是,在那种情况下,一次只能select编辑 1 个按钮,而不是 2 或 3 个。
如何从同一组中获取所有 selected 切换按钮? 所以,基本上,与复选框相同的原理。
您可以使用 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);
}
});