我有5个radiobutton(A,B,C,D,E),每个2都在一个切换组中(例如A和B在toggleGroup中,C和D在toggleGroup中),第五个是单独的。我希望如果我选择A和C然后选择E,则取消选择A和C.我尝试使用.setSelected(false)但它似乎不起作用。还有其他功能,还是我可以在两个toggleGroup中使用E?如果有,怎么样?谢谢。
可能有更好的解决方案,但这解决了您的问题: - 在每个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的选择状态。