我原来中习惯用ActionListener,在JComboBox中一回车,总会触发两次事件,JTextField就只触发一次。
原因是JComboBox中的Item有两种状态:deSelected 和 Selected 。输入新内容后原来的Item变成deselected,触发一次事件; 新的Item变成selected状态又触发一次事件。解决方法是使用ItemListener,只在Selected时候响应事件:comboBox.addItemListener(new ItemListener(){ @Override public void itemStateChanged(ItemEvent e) { if(e.getStateChange() == ItemEvent.SELECTED){ // ... } }});但这样又有一个问题:当你敲击两下回车时只激发一次事件,因为第二次state并没有change。。。这个要怎么办呢?