在 Java 中,我使用 DefaultTableModel 将列动态添加到 JTable。
//create DefaultTableModel with columns and no rows
DefaultTableModel tableModel = new DefaultTableModel(columnNames, 0);
JTable table = new JTable(tableModel);
columnNames 变量是一个包含列名的字符串数组。因此,在程序启动并运行后,用户可以选择添加其他列。我这样做如下
tableModel.addColumn("New column name");
根据需要动态地将列添加到表中。用户还可以删除添加的列。为此,我使用以下代码:
TableColumn tcol = table.getColumnModel().getColumn(0);
table.getColumnModel().removeColumn(tcol);
这应该删除指定索引处的列,我也尝试过:
table.removeColumn(sheet.getColumn(assessmentName));
他们都工作(视觉上),但这是问题所在。删除添加的列后,如果添加了另一列并且表格刷新,则先前删除的列再次存在。因此,虽然它在视觉上删除了该列,但最后两个代码片段实际上都没有将它从模型中删除。我在这里假设,由于该列已添加到需要从中删除的模型中?是否有我需要调用的特定方法或我需要实现一些逻辑来删除列?