从Access数据库填充JTable

时间:2013-09-09 17:41:32

标签: java database swing jtable

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

任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:1)

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

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

Times = new JTable(model);

重新分配引用时间,但它不会将旧表格从表单中删除,也不会将新表格添加到表单中。

试试这个......

model = new DefaultTableModel();

......而这......

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

......而这......

Times.setModel(model);

很难说是否会这样做。代码示例不完全是SCCE。