如何更新JTable

时间:2010-04-28 20:24:44

标签: java swing jtable

晚上好

我有一个用TableModel构建的JTable如何更新表的元素,因为当我做table = new JTable(new TableProg(elementTab))时我在原始表上面创建另一个表并且它非常难看

例如,当“elementTab”发生变化时,如何在每次迭代中更新循环中的表元素?

非常感谢

4 个答案:

答案 0 :(得分:3)

不确定我理解你的问题。

要更新表格的单元格,只需使用

table.setValueAt(...);

要立即更新整个表,您可以创建一个新的TableModel,然后使用新模型更新表:

TableModel model = new YourTableModel(...);
table.setModel( model );

虽然学习如何使用模型从DefaultTableModel开始,因为它还支持使用addRow(...)和removeRow()对模型进行动态更改。

答案 1 :(得分:2)

我建议您延长AbstractTableModel并实施适合您的void addRow(YourObject row)。或者,如果要更新漏洞表数据,可以实现void addElements(YourCollection elements)并使用void fireTableDataChanged() - 方法。

即。将您的数据保存在LinkedList中,并且在添加新行时不要忘记使用void fireTableRowsInserted(int firstRow, int lastRow)

答案 2 :(得分:0)

非常感谢大家,我解决了我的问题:

model = new TableProg(elements); table.setModel(模型);

循环中的

答案 3 :(得分:-1)

关于elementTab的更多细节对于提出解决方案非常有帮助。 如果要添加行,只需创建一个对象数组并添加到模型中。 例如。

    TableModel model = table.getModel();
Object[] row = new Object[] {1,2,3};
model.addRow(row);

如果要选择性更新单元格,请使用 model.setValueAt(Object,row,col);