在一个项目中,我将ItemListener添加到一组JcheckBox和JRadioButtons中。
我希望当用户单击已经选择的JRadioButton时,它将被取消选举。
对于这个方法,我只知道得到相应的ButtonGroup,然后调用clearSelection()方法。但是在itemStateChanged()方法中,我有JtoggleButton option=(JtoggleButton)event.getSource();
因此,选项是指JRadioButton或JcheckBox。我已经搜索过了,但无法找到获取ButtonGroup的JRadioButton方法。
发布于 2016-06-01 21:36:56
您可以使用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;
}https://stackoverflow.com/questions/37579092
复制相似问题