是否有必要在Eclipse插件中配置资源

时间:2013-03-21 13:06:00

标签: java eclipse-plugin

我是eclipse开发的新手,在学习SWT时,我开始知道我需要使用下面的片段处理display

while (!shell.isDisposed ()) {
    if (!display.readAndDispatch ()) display.sleep ();
}
display.dispose ();

因此它处理了显示器获取的所有OS资源。我的问题是我应该在Eclipse插件中做同样的事情吗?考虑一下我们有createPartControl()代码:

public void createPartControl(Composite parent) {
      //Other codes
      parent.dispose(); //Shoud I compulsory do this in eclipse plugin?
}

或者eclipse会自动处理资源吗?我的假设是我应该手动处理。如果我错了,你能帮我纠正吗?

1 个答案:

答案 0 :(得分:1)

parent.dispose()是错误的做法。您应该清理在复合中创建的资源。不要处置父级,因为它不是由视图/复合创建的。

在Widget上侦听dispose事件并进行必要的清理。假设您在视图中创建了颜色,字体,图像......等资源,并且您不想重复使用它们,请在复合材料上监听dipose事件并将它们浸入其中。

yourComposite.addListener(SWT.dispose, new Listener(){

    public void handleEvent(Event e){
            image.dispose(); 
            font.dipose();  
            color.dipose()

    }

});