您可以尝试以下代码来创建持久性切换。
/**
* Create a toggle group of buttons where one toggle will always remain switched on.
*/
class PersistentButtonToggleGroup extends ToggleGroup {
PersistentButtonToggleGroup() {
super();
getToggles().addListener(new ListChangeListener<Toggle>() {
@Override public void onChanged(Change<? extends Toggle> c) {
while (c.next()) {
for (final Toggle addedToggle : c.getAddedSubList()) {
((ToggleButton) addedToggle).addEventFilter(MouseEvent.MOUSE_RELEASED, new EventHandler<MouseEvent>() {
@Override public void handle(MouseEvent mouseEvent) {
if (addedToggle.equals(getSelectedToggle())) mouseEvent.consume();
}
});
}
}
}
});
}
}
,如果你想占键盘事件或代码改变切换这只是响应鼠标事件,所以也许并不理想。
,我没有试过可以在博客条目Button of Choice: Use ToggleButtons as RadioButtons定义类似,但也许更完整的方法。
也许最简单的行为来实现你的愿望可能是使用RadioButtons而不是ToggleButtons。
另外,如果您想要像ToggleButtons这样的按钮而不是RadioButtons,那么您可以尝试下面列出的样式技术:How to make a RadioButton look like regular Button in JavaFX。
RadioButton radioButton=new RadioButton("Radio");
radioButton.getStyleClass().remove("radio-button");
radioButton.getStyleClass().add("toggle-button");
'RadioButton's有你要找的功能。你可以使用那些而不是'ToggleButton's? –