2014-03-24 126 views
0

我使用树形图填充JTable并且正在通过SQL填充树形图,我的问题是我只能在一行中通过树形图填充,是吗?可以写一个代码(即计数器)说,添加一个新行通过树形图和SQL填充JTable

这是代码行:

library.put("01", new Item(res.getString(2),(res.getString(3), Integer.parseInt(res.getString(4)))); 
+1

是否有可能写一个代码(即计数器)说添加一个新行==是的,不要使用HashWhat作为底层数组为Swing JComponents /它的模型,使用util.List而不是(在必须存储在分离数组中或两次) – mKorbel

+0

欢呼我会试一试 – user3396322

+0

您是否使用TableModel? –

回答

1

“是有可能写出说添加一个新的代码(即计数器) 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