2008-11-17 168 views
13

我們有一個簡單的項目,可以從套接字讀取數據,我們希望使用即將到來的數據填充表,但是我們無法找到將行添加到尚未創建的JTable對象的方法,我們只能找到如何在表創建時添加行。將行添加到JTable中

是否可以將行動態添加到JTable,或者有更好的替代對象來處理這種顯示數據的方式?

編輯:非常感謝您的回答。

他們三人都看起來很有希望,但我只能選擇一個,我認爲最好的是Guillaume的。

回答

12

您應該創建一個自定義TableModel。 A JTable實際上並不存儲行,它總是將其委託給TableModel。爲了幫助你實現它,你應該使用AbstractTableModel。每次添加行時,請別忘記撥打fireTableRowsInserted()。爲了獲得更好的性能,如果添加很多行,請嘗試批量更新並一次添加許多行。

6

一旦開始動態添加和刪除JTable中的元素,您確實需要開始使用TableModel。

查看Java Tutorial瞭解更多詳情。

11

如果使用默認的表模型的一個JTable,那麼你可以用下面的代碼

if (dest+1 < table.getRowCount()-1) 
    ((DefaultTableModel) table.getModel()).insertRow(dest+1, getValuesForNewRow()); 
    else 
    ((DefaultTableModel) table.getModel()).addRow(getValuesForNewRow()); 
+7

它最好只是保持的DefaultTableModel的保持它傳遞給JTable的構造函數之前添加行。然後您不需要觸摸JTable或執行任何投射。 – 2008-11-17 15:21:28