Как удалить прослушиватели на SWING JComponents

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

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

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

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

спасибо заранее Джоан!--2-->

2 ответов



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

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