在一个项目中,我将ItemListener添加到一组JcheckBox和JRadioButtons。
我希望当用户点击已经选择的JRadioButton时,它会被取消选择。
对于这个唯一的方法,我知道正在获取Corresponding ButtonGroup,然后调用clearSelection()方法。 但是在itemStateChanged()方法中我有JtoggleButton选项=(JtoggleButton)event.getSource();
因此选项指的是JRadioButton或JcheckBox。我已经搜索过,但我无法找到一个方法来获取JRadioButton的ButtonGroup。
答案 0 :(得分:2)
您可以使用getSource
并查看instanceof
。如果是JRadioButton
将其转换为JRadioButton
并将selected
设置为false。 JCheckBox
if(event.getSource instanceof JRadioButton){
JRadioButton btn=(JRadioButton) event.getSource();
btn.setSelected=false;
}
else if (event.getSource instanceof JCheckBox){
JCheckBox chb= (JCheckBox) event.getSource();
chb.setSelected=false;
}
如果您想取消选择已选择的条件,可以添加如下条件
if(event.getSource instanceof JRadioButton){
JRadioButton btn=(JRadioButton) event.getSource();
if(btn.isSelected())
btn.setSelected=false;
}
else if (event.getSource instanceof JCheckBox){
JCheckBox chb= (JCheckBox) event.getSource();
if(chb.isSelected())
chb.setSelected=false;
}