Как JComponent может уведомить о закрытом событии своего родительского J (внутреннего) фрейма? - PullRequest
0 голосов
/ 27 января 2009

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

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

Спасибо!

Ответы [ 2 ]

2 голосов
/ 30 января 2009

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

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

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

Подробнее см. API .

Обновление: См. Также это

1 голос
/ 11 февраля 2009

Я бы написал что-то подобное

class ListenToWindow
extends WindowAdapter
{
MyInternalFrame frame;

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

(...)
JFrame window;
MyInternalFrame frame;
(...)
window.addWindowLister(new ListenToWindow(frame));
(...)
...