JCombobox.addItemListener(ItemListener listener)

解决方案 »

  1.   


    public class JComboBoxDemo extends JFrame implements ItemListener
    {  
        JComboBox jb;
       JPanel p=new JPanel();
      public JComboBoxDemo()
      {
      jb=new JComboBox();
      jb.addItem("1");
      jb.addItem("2");
      jb.addItem("3");
      jb.addItemListener(this);
          
           p.add( jb);
         this.getContentPane().add(p);  
       
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);  
        this.setSize(360, 260);  
        this.setVisible(true);  
     }  
      
     public void itemStateChanged(ItemEvent e)
     {
           if(e.getStateChange() == ItemEvent.SELECTED)
                 {
                     String s=(String)jb.getSelectedItem();
                         System.out.println(s);
                 }
    }  
     public static void main(String args[])
      {  
        new JComboBoxDemo();  
       }  
    }  
     
      

  2.   

    用ActionListener监听
    当JComboBox选中时产生ItemEvent事件
    选择后产生ActionListener
    lz选中0002后在事件处理就可以用getSelectedItem()得到
    所选进行相应的处理
      

  3.   

    回复:zss6233305: 
    我有用itemStateChanged(ItemEvent e)来做,但是在程序运行时
    jb.addItem("1");
    jb.addItem("2");
    jb.addItem("3");
    这些动作itemStateChanged(ItemEvent e)好像也有相应,我现在想只有通过鼠标或者键盘选中才响应,而如果是程序中执行jb.addItem("X");这些动作的时候就不响应,这样能否做到呢?
      

  4.   

    回复wwwcomcn123如果用ActionListener监听,好像对JComboBox所有的动作都会响应,如何只响应鼠标或键盘选中所产生的事件,能否给出具体的代码,谢谢
      

  5.   

    import javax.swing.*;
    import java.awt.*;
    import java.awt.event.*;
    public class JComboBoxDemo extends JFrame implements ItemListener
    {  
        JComboBox jb;
       JPanel p=new JPanel();
      public JComboBoxDemo()
      {
          jb=new JComboBox();
          jb.addItem("选项1");
          jb.addItem("选项2");
          jb.addItem("选项3");
          jb.addItemListener(this);
           
           p.add( jb);
         this.getContentPane().add(p);  
        
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);  
        this.setSize(360, 260);  
        this.setVisible(true);  
     }  
       
     public void itemStateChanged(ItemEvent e)
     {
           if(e.getStateChange() == ItemEvent.SELECTED)
                 {
        if(jb.getSelectedItem()=="选项1") {
     System.out.println("选择了选项1");
     }
       if(jb.getSelectedItem()=="选项2") {
     System.out.println("选择了选项2");
     }
       if(jb.getSelectedItem()=="选项3") {
     System.out.println("选择了选项3");
     }
                    
                 }
    }  
     public static void main(String args[])
      {  
        new JComboBoxDemo();  
       }  
    }  
      2#的代码改动了一点 不知道是不是你想要的