我們有一個簡單的項目,可以從套接字讀取數據,我們希望使用即將到來的數據填充表,但是我們無法找到將行添加到尚未創建的JTable
對象的方法,我們只能找到如何在表創建時添加行。將行添加到JTable中
是否可以將行動態添加到JTable
,或者有更好的替代對象來處理這種顯示數據的方式?
編輯:非常感謝您的回答。
他們三人都看起來很有希望,但我只能選擇一個,我認爲最好的是Guillaume的。
我們有一個簡單的項目,可以從套接字讀取數據,我們希望使用即將到來的數據填充表,但是我們無法找到將行添加到尚未創建的JTable
對象的方法,我們只能找到如何在表創建時添加行。將行添加到JTable中
是否可以將行動態添加到JTable
,或者有更好的替代對象來處理這種顯示數據的方式?
編輯:非常感謝您的回答。
他們三人都看起來很有希望,但我只能選擇一個,我認爲最好的是Guillaume的。
您應該創建一個自定義TableModel
。 A JTable
實際上並不存儲行,它總是將其委託給TableModel
。爲了幫助你實現它,你應該使用AbstractTableModel
。每次添加行時,請別忘記撥打fireTableRowsInserted()
。爲了獲得更好的性能,如果添加很多行,請嘗試批量更新並一次添加許多行。
一旦開始動態添加和刪除JTable中的元素,您確實需要開始使用TableModel。
查看Java Tutorial瞭解更多詳情。
如果使用默認的表模型的一個JTable,那麼你可以用下面的代碼
if (dest+1 < table.getRowCount()-1)
((DefaultTableModel) table.getModel()).insertRow(dest+1, getValuesForNewRow());
else
((DefaultTableModel) table.getModel()).addRow(getValuesForNewRow());
它最好只是保持的DefaultTableModel的保持它傳遞給JTable的構造函數之前添加行。然後您不需要觸摸JTable或執行任何投射。 – 2008-11-17 15:21:28