使用表编辑器组件删除列

时间:2011-11-30 07:24:46

标签: java eclipse swt

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

执行此操作时
int columnscount = myTable.getColumnCount();

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

删除所有列,但不删除复选框。如何删除编辑器组件?它们是使用此代码

创建的
TableEditor editor = new TableEditor (myTable);
editor.minimumWidth = checkButton.getSize().x;
editor.horizontalAlignment = SWT.CENTER;
editor.setEditor(checkButton, ti, colCheckCount);

2 个答案:

答案 0 :(得分:2)

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

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

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

答案 1 :(得分:1)

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