我使用樹形圖填充JTable並且正在通過SQL填充樹形圖,我的問題是我只能在一行中通過樹形圖填充,是嗎?可以寫一個代碼(即計數器)說,添加一個新行通過樹形圖和SQL填充JTable
這是代碼行:
library.put("01", new Item(res.getString(2),(res.getString(3), Integer.parseInt(res.getString(4))));
我使用樹形圖填充JTable並且正在通過SQL填充樹形圖,我的問題是我只能在一行中通過樹形圖填充,是嗎?可以寫一個代碼(即計數器)說,添加一個新行通過樹形圖和SQL填充JTable
這是代碼行:
library.put("01", new Item(res.getString(2),(res.getString(3), Integer.parseInt(res.getString(4))));
「是有可能寫出說添加一個新的代碼(即計數器) line「
聽起來對我來說,您將數據保存在兩個單獨的數據結構中,一個在您的TreeMap
中,另一個在JTable
的基礎TableModel
中。這是沒有必要的。數據只能保存在TableModel
中。請參閱Creating a TableModel。
要動態添加行最簡單的方法是使用DefaultTableModel
,該工具負責fireXxx
方法,以便您更新表格。您可以使用Item
對象編寫自己的XxxTableModel
對象,但可能沒有必要。
對於DefaultTableModel
如果您沒有初始數據,您可以使用0行(僅列名稱)設置模型以啓動。
String[] cols = { "Col 1", "Col 2", "Col 3" };
DefaultTableModel model = new DefaultTableModel(cols, 0);
JTable table = new JTable(model);
如果做有一些初始數據,你可以使用構造
DefaultTableModel(Object[][] data, Object[] cols)
然後動態地添加行,只需使用model.addRow(Object[])
。類似於
Object[] row = { res.getString(2),
res.getString(3),
Integer.parseInt(res.getString(4))
};
model.addRow(row);
該表格將自動爲您更新,請致電addRow
。
您正在使用TreeMap
的事實可能表示您希望對數據進行排序。在這種情況下,你可能想看看Sorting and Filtering Tables
是否有可能寫一個代碼(即計數器)說添加一個新行==是的,不要使用HashWhat作爲底層數組爲Swing JComponents /它的模型,使用util.List而不是(在必須存儲在分離數組中或兩次) – mKorbel
歡呼我會試一試 – user3396322
您是否使用TableModel? –