我创建了一个“复杂”的复合体,它包含一些小部件并监听某些事件(即,它将自身注册到另一个元素中)。我还在该组合中实现了一个dispose方法,该方法从通知中注销自己并在组合上调用dispose(super.dispose()
)。
我在几个地方使用这个小部件,包括一个向导页面。但是,似乎当向导关闭时(使用“完成”或“取消”),我的窗口小部件不会被处理掉。实际上,WizardPage的dispose方法非常简单,因为它只清理图像。
我错过了什么,或者我必须对我的复合材料进行明确的处理?
答案 0 :(得分:0)
您可以调用“复杂”复合类的dispose()
实现来清理在向导页面dispose()
方法的实现中明确分配此窗口小部件的资源,但这仅适用于向导页面!
更好的方法似乎是在您的复合/窗口小部件中添加一个dispose侦听器,并在DisposeListener的widgetDisposed(DisposeEvent e)
方法中执行清理步骤。