itemStateChanged 执行了两次
itemStateChanged触发了两次
原来的代码:
@Override
public void itemStateChanged(ItemEvent e) {
Object source = e.getSource();
if ( source instanceof JRadioButton) {
JRadioButton selectedRadio = (JRadioButton) source;
if(selectedRadio==groupIdRadio){
isXml=false;
}else{
isXml=true;
}
System.out.println("isXml:"+isXml);
}
}
解决方法:增加条件判断:e.getStateChange()==ItemEvent.SELECTED
修改之后的方法:
@Override
public void itemStateChanged(ItemEvent e) {
Object source = e.getSource();
if (e.getStateChange() == ItemEvent.SELECTED&& source instanceof JRadioButton) {
JRadioButton selectedRadio = (JRadioButton) source;
if(selectedRadio==groupIdRadio){
isXml=false;
}else{
isXml=true;
}
System.out.println("isXml:"+isXml);
}
}
参考:
http://suckjava.blogspot.com/2009/06/itemlistener.html
http://stackoverflow.com/questions/21926397/jcombobox-itemstatechanged-event-called-twice-at-a-time