0

JTable にデータベースのデータを取り込もうとしています。私は非常に多くの異なる方法を試しましたが、うまくいきません。現在、データベース全体を含む結果セットを 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 ステートメントに入れたりすることはできません。

どんな助けでも大歓迎です!

4

1 に答える 1

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

Times.getRowCount() は空であるため、常にゼロを返します。

Times = new JTable(model);

参照 Times を再割り当てしますが、古いテーブルをフォームから取り出したり、新しいテーブルをフォームに追加したりしません。

これを試して...

model = new DefaultTableModel();

...この...

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

...この...

Times.setModel(model);

それができるかどうかはわかりません。コード サンプルは正確には SCCE ではありません。

于 2013-09-09T19:59:45.800 に答える