Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swing 更新TableModel中的列数_Swing_Jtable - Fatal编程技术网

Swing 更新TableModel中的列数

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的AbstractTableModel。 当我使用构造函数时
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()会更新列数,从而解决我的问题:)请向我们展示您的代码。否则,很容易猜测是什么导致了这个问题。对于一个干净的测试程序,它工作得很好。