0

現在、JDBC を使用して SQL データベースにアクセスする AbstractTableModel を使用する JTable があります。私はこれをします

stmt.executeUpdate(someStr);
fireTableRowsInserted(rowCount,rowCount+1);

これにより、明らかに JTable に行が追加されます。ただし、JTable が追加された行のみを表示するようにしたいと考えています。

追加された行のみを含む結果セットを作成することを考えましたが、増分 ID フィールドがないため、それを取得できません。

他に試すことができるものはありますか?

4

1 に答える 1

1
  1. 車輪を再発明しないで、 を検索してくださいResultsetTableModel(TableFromDatabaseすべてのイベントはドームにEDTあり、Swing GUIすべてのイベントが終了するまで待機/フリーズします。に基づいてAbstractTableModel)

  2. 車輪を再発明し、

    a)Runnable#Thread()またはSwingWorker( publish(), progress()) を使用JDBC

    b) 適切な を作成します。AbstractTableModel適切な通知機能をオーバーライドする必要があります。

    c) モデルでノーティファイアーを使用する。"fireTableRowsInserted(rowCount,rowCount+1);"

    d) 、 へのすべての更新はSwing GUIJTableXxxTableModelEDT

  3. のメソッドを厳密にオーバーライドする必要がある場合はAbstractTableModel、正しいものを探します。それ以外の場合は、からまたはのみAbstractTableModelを使用DefaultTableModelして呼び出す必要があります。Runnable#Thread()SwingWorkermyModel.addRow()

  4. より良いヘルプのために、データをハードコードしたSSCCEArrayJDBC Connections

于 2012-10-22T10:20:44.697 に答える