我正在使用java SWT进行应用程序开发。
在工具中有一个包含一些子节点的SWT树,我想删除其中的一些。我尝试使用remove()和removeAll()方法,但它不会完全删除该项目。它为TreeItem留下了一个空间。
答案 0 :(得分:5)
TreeItem
是Widget
的后代,其中包含dispose()方法。根据文件:
处置与之关联的操作系统资源 接收器及其所有后代。调用此方法后, 接收者和所有后代在发送时都会回答为真 message isDisposed()。小部件之间的任何内部连接 树将被删除,以方便垃圾收集。这个 如果窗口小部件已经处理,则该方法不执行任何操作。
所以treeItem.dispose()
会有用。
答案 1 :(得分:4)
根据the other question,您应该在要完全删除的树项上使用item.dispose()
。