这里我试图从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);
}
答案 0 :(得分:0)
Hai们最后我找到了一个解决方案,对于那些寻求此类问题答案的人来说,它会非常有用,所以我想在这里发布我的代码
只需创建一个名为reset()的方法 在那里
DefaultTableModel model;
model = (DefaultTableModel) jtable1.getModel();
void reset()
{
for(int i=model.getRowCount()-1; i>=0;i--)
{
model.removeRow(i);
}
}
并在任何地方调用此重置方法,使用简单的代码就可以正常工作,祝你好运