JComboBox中选择某个选项时itemStateChanged调用2次的原因在于:
1、在选择一个新的选项之前,原来被选中的选项会改变状态,由被选中(SELECTED)到没被选中(DESELECTED)
2、在选择新选项时,这个选项会改变状态,由没被选中(DESELECTED)到被选中(SELECTED)
所以解决该问题只需要判断一下状态就可以了,例如:
private void jComboBox1ItemStateChanged(java.awt.event.ItemEvent evt) {
//判断状态是不是被选中
if(evt.getStateChange() == ItemEvent.SELECTED){
JOptionPane.showMessageDialog(this, jComboBox1.getSelectedItem());
}
}