日期:2014-05-20  浏览次数:20647 次

如何清除JComboBox里的内容??
我其实是想实现JComboBox的动态更新。下面是c_or_in_class的监听器。c_or_in_class和c_or_in_proName都是JComboBox
Java code
class Classify implements ActionListener {
        public void actionPerformed(ActionEvent e) {
            try{
                String CLASS=String.valueOf(c_or_in_class.getSelectedItem());
                Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");            
                Connection con=DriverManager.getConnection("jdbc:sqlserver://localhost:1433;DatabaseName=数据库课程设计","sa","123");            
                Statement stmt=con.createStatement();
                String SQL="SELECT distinct product_name FROM Product WHERE product_class='"+CLASS+"'";
                System.out.println(SQL);
                ResultSet rs=stmt.executeQuery(SQL);
                while(rs.next()){
                    c_or_in_proName.removeAllItems(); //如果有这条语句下拉列表里就只有一个Item
                    c_or_in_proName.addItem(rs.getString(1));
                    
                }}catch(Exception ex){}
            
        }
    }

我想让每次选择不同内容出来的都是他所对应的内容。但如果只是c_or_in_proName.addItem(rs.getString(1));
他会让下拉列表的选项一直增加,就有了很多重复的选项,但如果加了c_or_in_proName.removeAllItems(); 每次c_or_in_proName里出来的就只有一项了。
谁能帮帮我啊~~~谢谢各位大哥啦!!
PS:我不会用ComboBoxModel来刷新。。。如果能够详细讲讲这个就感激不尽了!!

------解决方案--------------------
Java code

class Classify implements ActionListener {
        public void actionPerformed(ActionEvent e) {
            try{
                String CLASS=String.valueOf(c_or_in_class.getSelectedItem());
                Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");            
                Connection con=DriverManager.getConnection("jdbc:sqlserver://localhost:1433;DatabaseName=数据库课程设计","sa","123");            
                Statement stmt=con.createStatement();
                String SQL="SELECT distinct product_name FROM Product WHERE product_class='"+CLASS+"'";
                System.out.println(SQL);
                ResultSet rs=stmt.executeQuery(SQL);
                c_or_in_proName.removeAllItems(); //在循环外面先移除所有选项
                while(rs.next()){
                    c_or_in_proName.addItem(rs.getString(1));   
                }}catch(Exception ex){}
            
        }
    }