2012-10-22 28 views
0

現在我有一個JTable使用一個使用JDBC訪問SQL數據庫的AbstractTableModel。我這樣做使JTable顯示只添加行

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

這顯然增加了JTable上的行。但是,我想要發生的是JTable只顯示添加的行。

我想也許創造一個結果集只包含添加的行,但我不明白,因爲我沒有增量id字段。

還有什麼我可以嘗試嗎?

+0

*這顯然增加了對JTable中*行... EUH,無 – Robin

+1

您可以創建一個臨時表模型,僅包含新添加的行並將其設置爲表格。 – linski

+1

<牙齒磨損>不會發生火災事件代表模型。取而代之的是實施模型以適當地開火。順便說一下:間隔是包容性的邊界。至於你的要求(聽起來有點奇怪,但..):刪除除新添加的所有行。 – kleopatra

回答

1
  1. 不另起爐竈,尋找ResultsetTableModelTableFromDatabase(所有的事件都在EDTSwing GUI等待半球/凍結,直到所有的活動結束後,根據AbstractTableModel

  2. 推倒重來,

    一)使用Runnable#Thread()SwingWorkerpublish()progress()),用於JDBC

    二)建立一個適當的AbstractTableModel,有覆蓋適當的通知程序,

    C)在模型中使用的通告程序,"fireTableRowsInserted(rowCount,rowCount+1);"

    d)全部更新到Swing GUIJTableXxxTableModel必須在EDT完成

  3. 如果有關於嚴格requirents覆蓋在AbstractTableModel的方法,然後尋找正確AbstractTableModel,否則使用DefaultTableModel和調用或SwingWorkermyModel.addRow(),沒有別的

  4. 爲更好地幫助越早發佈數據的SSCCE硬編碼到Array instread的JDBC Connections