如何取消选择单选按钮,而不是与另一个单选按钮一起放入切换组

时间:2019-04-12 15:24:31

标签: java user-interface javafx radio-button scenebuilder

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

1 个答案:

答案 0 :(得分:1)

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

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的选择状态。