更新TableModel中的列数

时间:2011-09-29 15:56:43

标签: swing jtable

我使用DataModel扩展了我的Jtable的AbstractTableModel。 当我使用构造函数JTable main = new JTable(model);时 一切正常,但是当我向我的DataModel添加列并调用this.fireTableStructureChanged()时,列数不会更新,如下例所示。

Example

它显示了一个用我的DataModel初始化的JTable,它包含3行和3列。 DataModel已更新为4行4列,但只显示3列。

我的Changeevent似乎错了,因为:

JTable.getColumnCount() shows 3
but DataModel.getColumnCount() shows 4

我如何告诉表格列数已更改并应重新绘制它们?

1 个答案:

答案 0 :(得分:3)

JTable还有一个TableColumnModel,它包含要显示的所有列。向模型添加其他列时,除非将表的autoCreateColumnsFromModel属性设置为true(table.setAutoCreateColumnsFromModel(true)),否则列模型仍具有旧列数。

另一种方法是手动将另一列添加到列模型中。