晚上好
我有一个用TableModel构建的JTable如何更新表的元素,因为当我做table = new JTable(new TableProg(elementTab))时我在原始表上面创建另一个表并且它非常难看例如,当“elementTab”发生变化时,如何在每次迭代中更新循环中的表元素?
非常感谢
答案 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);