删除 TableEditor
盖高畅
2023-12-01
在SWT中的table中可以使用TableEditor在table中加入text或者combo,button等控件。但是,在删除的时候,发现通过tableEditor.setEditor(null,item,columnIndex)和table.removeAll()这些操作不能使得editor从table中删除掉。多次尝试发现,如果想要把TableEditor从table里面删除,必须结合removeAll和disposeTableEditor里面已经色条的control相结合才能取得删除掉table里面的TableEditor.(
http://dev.eclipse.org/newslists/news.eclipse.platform.swt/msg18512.html
这个链接的内容给了最好的提示,不过里面说TableEditor也需要dispose掉。我这里没有去dispose TableEditor,已经实现了效果,如果有同学在结合了上面两个操作后仍然不能删除掉table里面的TableEditor的话,可以尝试下dispose这个TableEditor。
)
下面是的实现的简单操作。
[list]
[*]定义一个List,存储TableEditor中定义的control
[*]在重新填充table的时候,首先dispose掉List中的control,然后,再用table的removeAll方法,删除掉table的所有数据。
[*]在table的数据填充时,定义相应的control和每个item上相应TableEditor,并把control添加到List中去
[/list]
这样的话,就实现了TableEditor的删除。