[NOT SOLVE]列表模型list.removeAllElements java swing的问题

时间:2014-01-29 10:50:20

标签: java mysql swing jlist

即时通讯使用java swing我想让搜索框与谷歌相同所以我使用texfiels和Jlist以及从数据库中添加的值,其中List在程序开始时设置为可见(false)并且当数据变为可见(true)时进入JlistModel。

我将使用JOptionpane.showMesssageDialoge模拟程序我在RemoveAllElement上发现了错误

我的源代码是,

    TMSearch=new JTextField();
    TMSearch.setBounds(200,220,350,30);
    add(TMSearch);
    TMSearch.addKeyListener(new KeyAdapter()
    {

        public void keyTyped(KeyEvent ke)
        {

        String QueryValue;
            if(ke.getKeyChar()== '\b' )
            {
                QueryValue=TMSearch.getText();



            }
            else    
            {
                QueryValue=TMSearch.getText()+ke.getKeyChar();


            }
            if(ke.getKeyChar()== '\b' && TMSearch.getText().length() == 0 )
            {
            BMReset.doClick();
            }   

    try     
        {

            Class.forName("com.mysql.jdbc.Driver");

            con=DriverManager.getConnection("jdbc:mysql://localhost/medi","root","");

            if(con==null)
            {
                JOptionPane.showMessageDialog(null,"ERROR");
            }

      MListModel.removeAllElements();   
            ps=con.prepareStatement("select * from medicine where cname like ? or mname like ?");
            ps.setString(1,QueryValue.concat("%"));
            ps.setString(2,QueryValue.concat("%"));


            rs=ps.executeQuery();


            while(rs.next())
        {           

                    int mid=rs.getInt("mid");
                    String  cname=rs.getString("cname");
                    String mname=rs.getString("mname");
                    float price=rs.getFloat("price");
                    String date=rs.getString("exp_date");
                    int mpunit=rs.getInt("mpunit");
                    int quantity=rs.getInt("quantity");
                    String temp;
                    temp=mid+"  "+cname+"  "+mname+"  "+price+"  "+date+"  "+mpunit+"  "+quantity;

                    MListModel.addElement(temp);
                    MListPane.setVisible(true); 



    ListFlag=1;
        }
        }
        catch (ClassNotFoundException e)
        {
        } 
        catch (SQLException e) 
        {
        }
        catch (Exception e) 
        {
        }   




        }
    }); 

1 个答案:

答案 0 :(得分:1)

  1. 不要使用null布局。 Swing旨在与Layout Managers一起使用。

  2. 学习和使用Java命名约定。 Java变量名称不应以大写字符开头。

  3. 不要使用空{} catch块。显示异常,以便您了解问题所在。

  4. 不要使用KeyListener。相反,您应该使用DocumentListener来监听文本字段中的更改。有关详细信息,请参阅How to Write a Document Listener

  5. 不要使用JList。 JTable更适合在列中显示数据。查看我给你的上述教程链接中的目录。您会在How to Use Tables上找到一个部分。

  6. 我建议您轻松访问Swing教程,因为它包含所有Swing基础知识。