RT,JAVA新手,大家帮帮忙!

解决方案 »

  1.   

    做个SelectionListener听选项,那个选了就用getSelectedItem(),拿到然后就组装你的sql呗。
      

  2.   

    我代码是这样写的,但是选项改变后不能监听到,应该怎么改?public class Jcombopricename extends JPanel{ private JPanel panel;
    private JLabel label;
    private JComboBox jcbpr=null;
    private String cboxprname;

    public Jcombopricename()
    {
    label=new JLabel("价格");
    jcbpr=new JComboBox();
    jcbpr.addItem("请选择");
    jcbpr.addItem("15万以下");
    jcbpr.addItem("15-25万");
    jcbpr.addItem("25-35万");
    jcbpr.addItem("35-45万");
    jcbpr.addItem("45-60万");
    jcbpr.addItem("60万以上");
    jcbpr.addItemListener(new ItemListener(){

    public void itemStateChanged(ItemEvent e)
    {
    Jcombopricename.this.cboxprname=(String)jcbpr.getSelectedItem();
    }
    });


    panel=new JPanel();
    panel.add(label);
    panel.add(jcbpr);
    }
    public JPanel getprpanel()
    {
    return panel;
    }

    public String getpricename()
    {
    if(cboxprname==null)
    {
    cboxprname=(String)jcbpr.getSelectedItem();
    }
    return cboxprname;
    }
    }
      

  3.   

    to obizss:jcombobox 如何监听SelectionListener?jcombobox API里好像没有这个监听,能给个例子嘛?
      

  4.   

    楼主,你可以为其注册一个实现了ActionListener接口的监听器,这种基本操作都可以触发主义事件:
      jcbpr.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e)
    {
    Jcombopricename.this.cboxprname=(String)jcbpr.getSelectedItem();
    }
    });
      

  5.   

    我一开始就写的ActionListener 可是在public void itemStateChanged(ItemEvent e)
    {
    Jcombopricename.this.cboxprname=(String)jcbpr.getSelectedItem();
    }
    });中,cboxprname值在itemStateChanged被改变了,可是跳出itemStateChanged,cboxprname又为空了没有保存到点击的选项值,我是在无法理解。大家帮我看看应该怎么改?
      

  6.   

    楼主,我写了一个监听JComboBox的事件的简单实现,运行通过,是你要的效果,代码如下:
    import javax.swing.*;                               
    import java.awt.event.*;                            
    class Test extends JFrame                           
    {                                                   
      JComboBox choose;                                 
      String str;                                       
      Test()                                            
      {                                                 
       super("test");                                   
       choose=new JComboBox();                          
       choose.addItem("十万");                          
       choose.addItem("二十万");                        
       add(choose);                                     
       choose.addActionListener(new ActionListener()    
        {public void actionPerformed(ActionEvent ae)    
         {str=(String)choose.getSelectedItem();         
          System.out.println(str);                      
         }                                              
        }                                               
         );                                             
       setSize(200,300);                                
       setVisible(true);                                
      }                                             
      public static void main(String[] args)            
      {new  Test();}                             
    }                                                   
    楼主运行看看。
      

  7.   

    TO GSEAH():我想用点击下拉框中的选项,组成SQL语句的查询条件,你在 actionPerformed里可以打印出STR,也是点击的选项,但是我想把STR保存下来并提取组成SQL查询条件,我在你的基础上加入了一个public getstr(){System.out.println(str);return str;},但是结果很意外,与在addActionListener中打印的System.out.println(str)不一样啊,结果是NULL,点击的选项没有保存下来啊有点抓狂了
      

  8.   

    我也是初学JAVA,想做一个MVC模式的查询体统,就这点问题搞了2-3天了,心灰意冷:(
      

  9.   

    public class Jcombopricename extends JPanel{private JPanel panel;
    private JLabel label;
    private JComboBox jcbpr=null;
    private String cboxprname;public Jcombopricename()
    {
    label=new JLabel("价格");
    jcbpr=new JComboBox();
    jcbpr.addItem("请选择");
    jcbpr.addItem("15万以下");
    jcbpr.addItem("15-25万");
    jcbpr.addItem("25-35万");
    jcbpr.addItem("35-45万");
    jcbpr.addItem("45-60万");
    jcbpr.addItem("60万以上");
    jcbpr.addItemListener(new ItemListener(){public void itemStateChanged(ItemEvent e)
    {
    cboxprname=(String)jcbpr.getSelectedItem();
    System.out.println("after="+cboxprname);
    }
    });
    panel=new JPanel();
    panel.add(label);
    panel.add(jcbpr);
    }
    public JPanel getprpanel()
    {
    return panel;
    }public String getpricename()
    {
    if(cboxprname==null)
    {
    cboxprname=(String)jcbpr.getSelectedItem();
    }
    System.out.println("get="+cboxprname);
    return cboxprname;
    }
    }结果:
    after=别墅
    get=null点击选项后的值没有保存下来:(应该改啊?
      

  10.   

    楼主,我在你说的基础上,加了几句,能够实现你要的效果
    import javax.swing.*;                                                        
    import java.awt.event.*;                                                     
    class Test extends JFrame                                                    
    {                                                                            
      JComboBox choose;                                                          
      String str;                                                                
      Test()                                                                     
      {                                                                          
       super("test");                                                            
       choose=new JComboBox();                                                   
       choose.addItem("十万");                                                   
       choose.addItem("二十万");                                                 
       add(choose);                                                              
       choose.addActionListener(new ActionListener()                             
        {public void actionPerformed(ActionEvent ae)                             
         {str=(String)choose.getSelectedItem();                                  
         System.out.println("aaa");                                              
         System.out.println(str);                                                
         }                                                                       
        }                                                                        
         );                                                                      
       setSize(200,300);                                                         
       setVisible(true);                                                         
      }                                                                      
                                                                                 
     public void  getString()                                                    
      {  
        if(str==null)                                                            
          str=(String)choose.getSelectedItem();                                  
         System.out.println("bbb");                                              
         System.out.println(str);                                                
      }                                                                          
      public static void main(String[] args)                                     
      {Test a=new  Test();                                                       
       a.getString();                                                       
      }                                                                      
                                                                                 
    }                                                                            
    我怀疑你的jcbpr.addItemListener(new ItemListener())这个方法注册监听器失败,要不你在这个方法内部加上 System.out.println("aaa");  这样一句,以检测事件触发时,是否进入了监听器内部。其实你说的“TO GSEAH():”那个问题也是可以解释的,因为在getstr(){System.out.println(str);return str;},被调用时,根本还没有触发事件,那么str当然是null了,所以,你可以你我加的那几句那样:
    if(str==null)                                                            
          str=(String)choose.getSelectedItem(); 结果表明,实际上我最初发的那段代码是可以实现你要的效果的(即选定项是被保存下来了的),但是你在后面被一个现象迷惑了
      

  11.   

    感谢gseah()这么热心:),可以结贴了。