插入新数据后,Jtable不会刷新

时间:2015-04-14 16:33:53

标签: java swing jtable

这里我试图从jtable搜索产品。但问题是,新的搜索结果在先前的搜索结果中添加而不是更新jtable,即使我使用 fireTableDataChanged()方法。

这是我的代码

    @Override
        public void actionPerformed(ActionEvent e) {


       System.out.println("Im in createIban with the values: " +comboBox.getSelectedItem()+ " and " + textField.getText());
      if(comboBox.getSelectedItem().toString().equals("Serial No"))
      {
            System.out.println("0");
           String cmb=textField.getText().toString();

 try{
      con=    (Connection) Connect.ConnectDB();

      String sql="select * from stocks where serial=?";
      pst =   (PreparedStatement) con.prepareStatement(sql);
      pst.setString(1, cmb);
      rs=pst.executeQuery();

      model = (DefaultTableModel) jt.getModel(); 

      model.fireTableDataChanged();            **//Here i used the method**


  while(rs.next()) {

            dt = rs.getString("date");
            mdt = rs.getString("mdate");
            srn = rs.getString("serial");
            mod = rs.getString("model");

            cap = rs.getString("capacity");
            inv = rs.getString("invoice");
            amt = rs.getString("amount");

            int i;
            for(i=0; i<model.getRowCount(); i++){
                {}
            }
          jt.repaint();
          model.fireTableDataChanged();       **//Here i used the method**
          model.addRow(new Object[]{i+1,mod,cap,dt,mdt,srn,inv,amt}); 


        JOptionPane.showMessageDialog(this,"Succesfully stored","User",JOptionPane.INFORMATION_MESSAGE);
            }
  }     catch (ClassNotFoundException ex) {
        Logger.getLogger(ViewStock.class.getName()).log(Level.SEVERE, null, ex);
    }   catch(SQLException ex){
       System.out.print(ex);

    }

1 个答案:

答案 0 :(得分:0)

Hai们最后我找到了一个解决方案,对于那些寻求此类问题答案的人来说,它会非常有用,所以我想在这里发布我的代码

只需创建一个名为reset()的方法 在那里

  DefaultTableModel model;
  model = (DefaultTableModel) jtable1.getModel(); 

void reset()
 {
for(int i=model.getRowCount()-1; i>=0;i--)
{
    model.removeRow(i);
 }
 }

并在任何地方调用此重置方法,使用简单的代码就可以正常工作,祝你好运