如何在不改变其行为的情况下使 ToggleButton 看起来像 RadioButton?
How can I make a ToggleButton look like a RadioButton without changing its behavior?
与 正好相反。我有一组 ToggleButtons,我希望它们看起来像 RadioButtons,同时保持一次取消选择所有这些按钮的能力。我怎样才能做到这一点?在这种情况下,该问题的已接受答案的 "opposite" 不起作用;它只是删除了按钮的所有样式,只留下它们的标签。
//this doesn't work
ToggleButton button=new ToggleButton("Toggle me!");
button.getStyleClass().remove("toggle-button");
button.getStyleClass().add("radio-button");
您不需要这种样式操作。 RadioButton
class 扩展了 ToggleButton
,所以你可以这样做:
ToggleButton button = new RadioButton("Toggle me!");
编辑
要在 ToggleGroup
中保持 ToggleButton
行为(能够取消选择),您可以将 RadioButton
的实现与覆盖的 fire()
方法一起使用,逻辑类似于 ToggleButton
class:
public static class MyRadioButton extends RadioButton {
public MyRadioButton() {
}
public MyRadioButton(String text) {
super(text);
}
@Override
public void fire() {
if (!isDisabled()) {
setSelected(!isSelected());
fireEvent(new ActionEvent());
}
}
}
与
//this doesn't work
ToggleButton button=new ToggleButton("Toggle me!");
button.getStyleClass().remove("toggle-button");
button.getStyleClass().add("radio-button");
您不需要这种样式操作。 RadioButton
class 扩展了 ToggleButton
,所以你可以这样做:
ToggleButton button = new RadioButton("Toggle me!");
编辑
要在 ToggleGroup
中保持 ToggleButton
行为(能够取消选择),您可以将 RadioButton
的实现与覆盖的 fire()
方法一起使用,逻辑类似于 ToggleButton
class:
public static class MyRadioButton extends RadioButton {
public MyRadioButton() {
}
public MyRadioButton(String text) {
super(text);
}
@Override
public void fire() {
if (!isDisabled()) {
setSelected(!isSelected());
fireEvent(new ActionEvent());
}
}
}