Я новичок в разработке eclipse, и, изучая SWT, я узнал, что мне нужно избавиться от display
, используя приведенный ниже фрагмент:
while (!shell.isDisposed ()) {
if (!display.readAndDispatch ()) display.sleep ();
}
display.dispose ();
Таким образом, он распоряжается всеми ресурсами ОС, полученными дисплеем. У меня вопрос: должен ли я делать то же самое в плагине Eclipse? Предположим, у нас есть такой код createPartControl()
:
public void createPartControl(Composite parent) {
//Other codes
parent.dispose(); //Shoud I compulsory do this in eclipse plugin?
}
Или eclipse позаботится об утилизации ресурсов автоматически? Я предполагаю, что я должен избавиться от него вручную. Не могли бы вы поправить меня, если я ошибаюсь?
1 ответ
parent.dispose()
- неправильный способ сделать это. вы должны очистить ресурсы, которые вы создали в своем композите. Не удаляйте родителя, поскольку он не был создан вашим представлением / композицией.
Прослушайте событие удаления на виджете и выполните необходимую очистку. Предположим, вы создали в своем представлении такие ресурсы, как «Цвета, шрифты, изображения… и т. Д.», И вы не хотите использовать их повторно, прослушивать событие dipose на своем композите и подавлять их.
yourComposite.addListener(SWT.dispose, new Listener(){
public void handleEvent(Event e){
image.dispose();
font.dipose();
color.dipose()
}
});
Похожие вопросы
Новые вопросы
java
Java — это высокоуровневый объектно-ориентированный язык программирования. Используйте этот тег, если у вас возникли проблемы с использованием или пониманием самого языка. Этот тег часто используется вместе с другими тегами для библиотек и/или фреймворков, используемых разработчиками Java.