我有两个类,第一个是具有jTable的GUI,另一个是用于查询数据库的GUI。 在同一个类中向表中添加行可以正常工作。我用这种方式:
((DefaultTableModel) table.getModel()).addRow(values);
虽然values
是包含行内容的Object []。
这工作正常。但是填充必须从另一个班级完成。所以我在查询类中有:
((DefaultTableModel) rg.table.getModel()).addRow(values);
虽然rg
是GUI类的对象。 table
公开。
即使抛出异常也没有做任何事情。
我的查询类应该更改什么?这是查询类中的方法:
public void selectPassengers(int rows) {
PreparedStatement pst = null;
ResultSet rs = null;
String query = "SELECT * FROM brs.passenger";
try {
pst = con.prepareStatement(query);
rs = pst.executeQuery();
Object[] attributes = new Object[9];
Register rg = new Register();
while (rs.next()) {
attributes[0] = String.valueOf(rs.getString(1));
attributes[1] = rs.getString(2);
attributes[2] = rs.getString(3);
attributes[3] = rs.getString(4);
attributes[4] = rs.getString(5);
attributes[5] = rs.getString(6);
attributes[6] = rs.getString(7);
attributes[7] = rs.getString(8);
attributes[8] = rs.getString(9);
((DefaultTableModel) rg.table.getModel()).addRow(attributes);
}
} catch (Exception e) {
e.printStackTrace();
}
}
答案 0 :(得分:0)
我通过在frame
对象之前调用model
对象来解决这个问题。
因此,在GUI类中公开rg.model.addRow();
之后,我使用rg.frame.model.addRow();
而不是frame
。