任何人都可以告诉我如何在defaulttablemodel上添加行吗?我使用结果集从数据库中检索数据和rs.getString()
来获取它们......而且我希望这个表在按下按钮后自动更新..
public void table(){
try{
rs = stat.executeQuery("SELECT * FROM payments;");
Vector<String> header = new Vector<String>();
header.add("PAYMENT");
header.add("AMOUNT");
header.add("MODIFIER");
header.add("DATE MODIFIED");
Vector<Vector<Object>> data = new Vector<Vector<Object>>();
while(rs.next()) {
Vector<Object> row = new Vector<Object>();
row.add(rs.getString("description"));
row.add(rs.getString("amount"));
row.add(rs.getString("remarks"));
row.add(rs.getString("date"));
dtm.addRow(row);
} // loop
dtm.setDataVector(data , header);
JScrollPane scrollPane = new JScrollPane(table);
scrollPane.setBounds(0,0,490,250);
panel.add(scrollPane);
validate();
}catch(Exception e){
System.out.println("Error in table: "+e);
}//try and catch
}
答案 0 :(得分:1)
您可以使用data
向量存储所有结果/行,然后在循环后使用dtm.setDataVector(data , header);
。
更改您的代码
dtm.addRow(row);
到
data.add(row);
基本上,您的代码必须是
Vector<Vector<Object>> data = new Vector<Vector<Object>>();
while(rs.next()) {
Vector<Object> row = new Vector<Object>();
row.add(rs.getString("description"));
row.add(rs.getString("amount"));
row.add(rs.getString("remarks"));
row.add(rs.getString("date"));
data.add(row); // add each result/row to data Vector
} // loop
dtm.setDataVector(data , header); // load all the table rows to DefaultTableModel