Java 删除包含表编辑器组件的列

Java 删除包含表编辑器组件的列,java,eclipse,swt,Java,Eclipse,Swt,我有一个表,其中包含多个带有复选框的列。有时,我的代码需要删除列并创建新列。当我通过以下代码执行此操作时 int columnscount = myTable.getColumnCount(); //remove the columns for(int i=2;i<columnscount;i++){ myTable.getColumn(2).dispose(); } 从Swing的JTable中删除列的正确方法是调用removeColumn方法: table.removeCo

我有一个表,其中包含多个带有复选框的列。有时,我的代码需要删除列并创建新列。当我通过以下代码执行此操作时

int columnscount = myTable.getColumnCount();

//remove the columns
for(int i=2;i<columnscount;i++){
    myTable.getColumn(2).dispose();
}

从Swing的
JTable
中删除列的正确方法是调用
removeColumn
方法:

table.removeColumn(table.getColumnModel().getColumn(0))


但是要小心,因为这只会从视图中删除列,而不会删除基础数据。

我决定改变我的操作方式。我没有删除我的列,而是处理了整个表并重新创建了它。效果很好。

是时候来一次SSCCE了。。一个小程序自给自足的程序,它显示了您遇到的问题。另一种方法是简单地告诉TableModel删除(即不返回该列)
TableEditor editor = new TableEditor (myTable);
editor.minimumWidth = checkButton.getSize().x;
editor.horizontalAlignment = SWT.CENTER;
editor.setEditor(checkButton, ti, colCheckCount);