0

我正在尝试使用数据库中的数据填充 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 语句。

任何帮助,将不胜感激!

4

1 回答 1

1
model.insertRow(Times.getRowCount(), ...

Times.getRowCount() 总是会返回零,因为它是空的。

Times = new JTable(model);

重新分配参考时间,但它不会将旧表从表单中取出或将新表添加到表单中。

尝试这个...

model = new DefaultTableModel();

...和这个...

model.insertRow(model.getRowCount(), ...

...和这个...

Times.setModel(model);

很难说这是否会成功。代码示例并不完全是 SCCE。

于 2013-09-09T19:59:45.800 回答