Как удалить Слушатели на SWING JComponents - PullRequest
8 голосов
/ 31 мая 2011

Есть ли простой способ удалить все Слушатели из JComponent?

JComponent widget = getComponentOverScaryMethod();
EventListener[] listners = widget.getListeners(EventListener.class);
for (EventListener l : listners) {
    widget.remove*RandomListener*(l);
}

Справочная информация:

У меня есть JComponent с неизвестным количеством слушателей (случайных типов). Поскольку виджет должен быть удален из видимой части (и больше не понадобится), он должен быть уничтожен (и слушатели должны быть удалены).

Спасибо заранее Joan

Ответы [ 2 ]

4 голосов
/ 31 мая 2011
1 голос
/ 31 мая 2011

если вы удаляете виджет из родительского элемента, он никогда не должен снова запускаться для событий, и слушатели должны автоматически освобождаться с помощью gc

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...