您可以嘗試以下代碼來創建持久性切換。
/**
* 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? –