在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