Как JComponent может уведомить о закрытом событии своего родительского J(Internal)Frame?
-
20-08-2019 - |
Вопрос
Я хочу написать компонент, который отслеживает другие действия, но его прослушиватели должны удаляться при закрытии окна компонента.
Я не хочу писать этот код удаления много раз, но хочу, чтобы компонент сам с ним справился.(Как мне это сделать?
Спасибо!
Решение
А 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));
(...)
Не связан с StackOverflow