我面临Java swt的问题。在我的RCP应用程序中,我运行一个线程,该线程每次启动时都会清除一个表,以便它可以再次显示列表中的元素。新列表已更新。
问题是当我运行线程时,uploadInformationTab.removeAll()
或uploadInformationtab.clearAll()
删除|清除所有项目,但我设置了TableEditor progressBarEditor=new TableEditor(uploadInformationTab)
和TableEditor checkBoxEditor=new TableEditor(uploadInformationTab)
的项目除外。
我找不到解决此问题的方法。
我希望我的问题很清楚。
最佳答案
在表中设置新值时,可能需要处置已设置的所有编辑器。就像是:
Control oldEditor = progressBarEditor.getEditor();
if (oldEditor != null) oldEditor.dispose();
oldEditor = checkBoxEditor.getEditor();
if (oldEditor != null) oldEditor.dispose();
注意:如果这是Eclipse RCP,则可以使用更易于使用的JFace
TableViewer
和EditingSupport
。更新:
Table.clearAll()
只是清除表中所有行的文本和图标。它使行数保持不变。 Table.removeAll()
将该表设置为空,从而完全删除所有现有行。