JComboBox选择事件为什么总执行二次?

来源:百度知道 编辑:UC知道 时间:2024/06/17 06:59:01
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class JComboBoxTest implements ItemListener{
JComboBox cb;
public static void main(String args[]){
new JComboBoxTest();
}
JComboBoxTest(){
JFrame f=new JFrame();
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
cb=new JComboBox();
cb.addItem("ok1");
cb.addItem("ok2");
cb.addItem("ok3");
cb.addItem("ok4");
cb.addItem("ok5");
cb.addItem("ok6");
cb.setEditable(true);
cb.addItemListener(this);

f.getContentPane().setLayout(new FlowLayout());
f.getContentPane().add(cb);
f.setSize(400,300);
f.setVisible(true);
}
public void itemStateChanged(ItemEvent e){
if(e.getSource()==cb){
System.out.println("ok");
}
}

}
这代码每次选择都会打印二个ok

也遇到了这个问题





追问

解决了吗?






追答

解决了,这个 还是 08 年的问题啊
在事件方法中:添加:
if (e.getStateChange() == ItemEvent.SELECTED) {
// 这里写事件代码
}