我不知道该怎么做。我正在创建一个应用程序。我需要使用表格,所以我使用的是 JTable。但是我有很多问题。
它似乎有效,但是当我尝试删除列时,该列消失了(仅在 GUI 中),但所有信息仍然存在。 columncount 也不会改变。
我搜索并尝试了很多不同的代码,但没有任何改变。
public void addTblCol(JTable table,String name) {
DefaultTableModel model = (DefaultTableModel)table.getModel();
TableColumn col = new TableColumn(model.getColumnCount());
col.setHeaderValue(name);
table.addColumn(col);
model.addColumn(name);
this.realColCnt++;
};
public void delTblCol(JTable table,int index) {
DefaultTableModel model = (DefaultTableModel)table.getModel();
TableColumn col = table.getColumnModel().getColumn(index);
table.removeColumn(col);
table.revalidate();
this.realColCnt--;
};
最佳答案
DefaultTableModel
支持 setColumnCount()
方法,该方法允许您仅从模型末尾删除列。
如果要从模型中间删除列,则需要:
- 扩展
DefaultTableModel
并创建您自己的removeColumn(int column)
方法。 - 此方法需要遍历 Vector 中的每一行,并使用
Vector.remove(int)
方法删除每一行的列。 - 最后,完成此操作后,您需要调用
fireTableStructureChanged()
方法来告知表已删除一列,以便可以重新绘制表。
关于java - 如何插入/删除列到 JTable java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19758002/