Как JComponent может уведомить о закрытом событии своего родительского J(Internal)Frame?

StackOverflow https://stackoverflow.com/questions/482029

Вопрос

Я хочу написать компонент, который отслеживает другие действия, но его прослушиватели должны удаляться при закрытии окна компонента.

Я не хочу писать этот код удаления много раз, но хочу, чтобы компонент сам с ним справился.(Как мне это сделать?

Спасибо!

Это было полезно?

Решение

А JFrame класс (который является окном) имеет processWindowEvent обратный вызов, который принимает один параметр, называемый Windowevent

Зарегистрировать этот обратный вызов и если параметр имеет WINDOW_CLOSED вы можете вызвать код удаления внутри.

В конце концов, код удаления пишется только один раз (как вы этого хотите).

См. API Больше подробностей.

Обновлять: Смотрите также этот

Другие советы

я бы написал что-то вроде этого

class ListenToWindow
extends WindowAdapter
{
MyInternalFrame frame;

public void windowClosed(event)
   {
   this.frame.removeAllTheRequiredListeners();
   }
}

(...)
JFrame window;
MyInternalFrame frame;
(...)
window.addWindowLister(new ListenToWindow(frame));
(...)
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top