Swing 更新TableModel中的列数
我使用一个数据模型,它扩展了Jtable的AbstractTableModel。 当我使用构造函数时Swing 更新TableModel中的列数,swing,jtable,Swing,Jtable,我使用一个数据模型,它扩展了Jtable的AbstractTableModel。 当我使用构造函数时JTable main=新的JTable(model) 一切正常,但当我向数据模型添加列并调用this.fireTableStructureChanged()时,列数不会更新,如以下示例所示 它显示了一个用我的数据模型初始化的JTable,它包含3行3列。数据模型已更新为4行4列,但仅显示3列 我的Changeevent似乎是错误的,因为: JTable.getColumnCount() sho
JTable main=新的JTable(model)代码>
一切正常,但当我向数据模型添加列并调用this.fireTableStructureChanged()
时,列数不会更新,如以下示例所示
它显示了一个用我的数据模型初始化的JTable,它包含3行3列。数据模型已更新为4行4列,但仅显示3列
我的Changeevent似乎是错误的,因为:
JTable.getColumnCount() shows 3
but DataModel.getColumnCount() shows 4
我怎样才能告诉表列的数量已经改变,它应该重新绘制它们 JTable还有一个TableColumnModel,它保存所有要显示的列。将另一列添加到模型中时,列模型仍具有旧的列数,除非表的autoCreateColumnsFromModel
属性设置为true(table.setAutoCreateColumnsFromModel(true)
)
另一种方法是手动将另一列添加到列模型中。谢谢,但是将setAutoCreateColumnsFromModel()设置为true似乎没有任何效果,因为JTable.getColumnCount()仍然显示3。知道为什么吗?但是,调用JTable.createDefaultColumnsFromModel()会更新列数,从而解决我的问题:)请向我们展示您的代码。否则,很容易猜测是什么导致了这个问题。对于一个干净的测试程序,它工作得很好。