我正在尝试使用数据库中的数据填充JTable。我已经尝试了很多不同的方式,它只是不想工作。目前我有一个类,它将整个数据库的结果集返回给我的UIClass,然后使用结果集来填充JTable。 Bellow是我的方法,它检索结果集,然后填充JTable。
private void SetJTable()
{
int count = 0;
String boatclass, senior, under23, junior;
try
{
ResultSet results = object.AllWorldBestTimes();
DefaultTableModel model = (DefaultTableModel) Times.getModel();
model.addColumn("Boat Class");
model.addColumn("Senior");
model.addColumn("Under 23");
model.addColumn("Junior");
while(count<24)
{
boatclass = results.getString(1);
senior = results.getString(2);
under23 = results.getString(3);
junior = results.getString(4);
System.out.println(boatclass + senior + under23 + junior);
model.insertRow(Times.getRowCount(), new Object[]{boatclass, senior, under23, junior});
count++;
}
Times = new JTable(model);
}
catch (SQLException e)
{
System.out.println("Ef");
}
}
以下是从数据库中检索数据的方法:
public ResultSet AllWorldBestTimes() throws SQLException
{
DatabaseConnection connection = new DatabaseConnection();
ResultSet result = connection.SelectStatements("SELECT * FROM WorldBestTimes");
return result;
}
没有崩溃所以我无法给出堆栈跟踪,也没有进入catch语句。
任何帮助将不胜感激!
答案 0 :(得分:1)
model.insertRow(Times.getRowCount(), ...
Times.getRowCount()总是返回零,因为它是空的。
Times = new JTable(model);
重新分配引用时间,但它不会将旧表格从表单中删除,也不会将新表格添加到表单中。
试试这个......
model = new DefaultTableModel();
......而这......
model.insertRow(model.getRowCount(), ...
......而这......
Times.setModel(model);
很难说是否会这样做。代码示例不完全是SCCE。