Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/400.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在不改变其行为的情况下使ToggleButton看起来像RadioButton?_Java_Javafx_Radio Button_Javafx 8_Togglebutton - Fatal编程技术网

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()
方法。请参阅我的编辑以解决此问题。