如何在 defaulttablemodel 上添加行
Posted
技术标签:
【中文标题】如何在 defaulttablemodel 上添加行【英文标题】:How to add row on defaulttablemodel 【发布时间】:2013-09-29 15:33:13 【问题描述】:谁能告诉我?我使用结果集从数据库中检索数据并使用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
【问题讨论】:
dtm 是我的默认表格模型 表格只显示标题而不是行.. 【参考方案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
【讨论】:
以上是关于如何在 defaulttablemodel 上添加行的主要内容,如果未能解决你的问题,请参考以下文章
DefaultTableModel addRow方法以格式添加行:column_name = column_value而不是column_value
如何将DefaultTableModel对象的数据放入DefaultTableModel的子类中