在Java中,我使用DefaultTableModel动态地将列添加到JTable中。从Java中的TableModel中删除列
//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));
他们两人的工作(视觉),但这里的问题。删除添加的列后,如果添加了另一列并刷新表,则以前删除的列将再次出现。因此,当它以可视方式移除列时,最后两个代码片段实际上都不会将其从模型中移除。我在这里假设,因为列被添加到需要从中删除的模型中?是否有我需要调用的特定方法或需要实施的一些逻辑来删除列?
+1,用于setAutoCreateColumnsFromModel()方法。这是一个非常有用的方法。 – camickr 2011-05-09 18:34:10
感谢该帖子的链接只是我需要的信息 – Mark 2011-05-10 19:48:10
非常感谢。没有意识到这个功能。 – Mark 2011-05-11 15:58:32