我正在尝试使用数据库中的数据填充 JTable。我尝试了很多不同的方法,但就是不起作用。目前,我有一个类,它将包含整个数据库的结果集返回到我的 UIClass,然后 UIClass 使用该结果集填充 JTable。下面是我的方法,它检索结果集,然后填充 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 语句。
任何帮助将不胜感激!
最佳答案
model.insertRow(Times.getRowCount(), ...
Times.getRowCount() 总是返回零,因为它是空的。
Times = new JTable(model);
重新分配引用时间,但不会将旧表从表单中取出或将新表添加到表单中。
试试这个...
model = new DefaultTableModel();
...还有这个...
model.insertRow(model.getRowCount(), ...
...还有这个...
Times.setModel(model);
很难说这是否有效。该代码示例并不完全是 SCCE。
关于java - 从 Access 数据库填充 JTable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18703917/