Java 如何在不改变其行为的情况下使ToggleButton看起来像RadioButton?
有点像的相反。我有一组切换按钮,我希望看起来像单选按钮,同时保持一次取消选择所有按钮的能力。我怎样才能做到这一点?在这种情况下,这个问题上公认答案的“反面”不起作用;它只是删除了按钮的所有样式,只留下它们的标签Java 如何在不改变其行为的情况下使ToggleButton看起来像RadioButton?,java,javafx,radio-button,javafx-8,togglebutton,Java,Javafx,Radio Button,Javafx 8,Togglebutton,有点像的相反。我有一组切换按钮,我希望看起来像单选按钮,同时保持一次取消选择所有按钮的能力。我怎样才能做到这一点?在这种情况下,这个问题上公认答案的“反面”不起作用;它只是删除了按钮的所有样式,只留下它们的标签 //this doesn't work ToggleButton button=new ToggleButton("Toggle me!"); button.getStyleClass().remove("toggle-button"); button.getStyleClass().a
//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
类中的逻辑:
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());
}
}
}
你不需要这种风格的操纵
RadioButton
class扩展了ToggleButton
,因此您可以执行以下操作:
ToggleButton button = new RadioButton("Toggle me!");
编辑
要在ToggleGroup
中保留ToggleButton
行为(能够取消选择),您可以将RadioButton
的实现与重写的fire()
方法一起使用ToggleButton
类中的逻辑:
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());
}
}
}
可能重复。可能重复。抱歉,但我确实声明需要“保持一次取消选择所有选项的能力”。单选按钮不具有此行为,而切换按钮具有此行为。作为切换组的一部分时,RadioButton将不允许取消选中。@RyanHilbert ye,您是对的,
RadioButton
已覆盖fire()
方法。请参阅我的编辑以解决此问题。抱歉,但我确实声明需要“保持一次取消选择所有选项的能力”。单选按钮不具有此行为,而切换按钮具有此行为。作为切换组的一部分时,RadioButton将不允许取消选中。@RyanHilbert ye,您是对的,RadioButton
已覆盖fire()
方法。请参阅我的编辑以解决此问题。