如何在一个带有另一个单选按钮的toggleGroup中取消选择一个单选按钮

问题描述 投票:-1回答:1

我有5个radiobutton(A,B,C,D,E),每个2都在一个切换组中(例如A和B在toggleGroup中,C和D在toggleGroup中),第五个是单独的。我希望如果我选择A和C然后选择E,则取消选择A和C.我尝试使用.setSelected(false)但它似乎不起作用。还有其他功能,还是我可以在两个toggleGroup中使用E?如果有,怎么样?谢谢。

java user-interface javafx radio-button scenebuilder
1个回答
1
投票

可能有更好的解决方案,但这解决了您的问题: - 在每个RadioButton的initialize方法中创建事件,检查它们的值(并根据它们的选择状态添加代码):

aRadioButton.selectedProperty().addListener((observable, oldValue, newValue) -> {
    //if RadioButton is selected
    if (newValue) {
        //check if other RadioButtons are selected
        if(bRadioButton.isSelected()) {
             //add your code
             // deselect it using:
             bRadioButton.setSelected(false);
        } else {
        // aRadioButton is deselected
        //add your code
     }
}

- 或者从fxml创建一个事件

@FXML
private void aRadioButton(ActionEvent event) { 
    //this will change the state of RadioButton
    //to preserve deselection from this event use:
    if(!aRadioButton.isSelected()) {
        aRadioButon.setSelected(true);    
    }
    //add your code here
}

这种方式不包括ToggleGroup,您必须管理RadioButton的选择状态。

© www.soinside.com 2019 - 2024. All rights reserved.