请问我想在一个jcombobox里用鼠标点击一个item就触发一个事件,需要用什么事件处理方法?actionPerformed方法在一开始显示jcombobox就触发了,还没等我用鼠标选择item,而itemStateChanged要item改变后触发,我想要刚生成窗口时有个jcombobox,里面有几个item,并且最开始默认为空,再用鼠标点item来触发事件,这怎么做?
   谢谢各位~!!!

解决方案 »

  1.   

    鼠标监听只是点击到jcombobox上就会触发,并不是选择不同的item才触发
      

  2.   

    比如if(e.getStateChange() == ItemEvent.SELECTED){//要执行的代码} 
      

  3.   

    我不知道楼主有什么问题,你加一个判断就好了啊。import java.awt.EventQueue;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.awt.event.ItemEvent;
    import java.awt.event.ItemListener;
    import javax.swing.JComboBox;import javax.swing.JFrame;public class JComboBoxTest extends JFrame {  private JComboBox comboBox;  /**
       * Launch the application
       * 
       * @param args
       */
      public static void main(String args[]) {
        EventQueue.invokeLater(new Runnable() {
          public void run() {
            try {
              JComboBoxTest frame = new JComboBoxTest();
              frame.setVisible(true);
            } catch (Exception e) {
              e.printStackTrace();
            }
          }
        });
      }  /**
       * Create the frame
       */
      public JComboBoxTest() {
        super();
        getContentPane().setLayout(null);
        setBounds(100, 100, 500, 375);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);    comboBox = new JComboBox();
        comboBox.addItemListener(new ItemListener() {
          public void itemStateChanged(final ItemEvent e) {
            int index = comboBox.getSelectedIndex();
            if (index != 0) { // ==0表示选中的事第一个
              String content = comboBox.getSelectedItem().toString();
              System.out.println("index222="
                  + index + ", content=" + content);
            }
          }
        });
        comboBox.addActionListener(new ActionListener() {
          public void actionPerformed(final ActionEvent e) {
            int index = comboBox.getSelectedIndex();
            if (index != 0) { // ==0表示选中的事第一个
              String content = comboBox.getSelectedItem().toString();
              System.out.println("index111="
                  + index + ", content=" + content);
            }
          }
        });
        comboBox.setBounds(96, 131, 106, 25);
        comboBox.addItem("");
        comboBox.addItem("1111");
        comboBox.addItem("2222");
        comboBox.addItem("3333");
        getContentPane().add(comboBox);
        //
      }}
      

  4.   

         解决了,谢谢大家~!特别是xiaoduan5267 !谢谢!