Как удалить прослушиватели на SWING JComponents
есть ли простой способ удалить все прослушиватели из JComponent?
JComponent widget = getComponentOverScaryMethod();
EventListener[] listners = widget.getListeners(EventListener.class);
for (EventListener l : listners) {
widget.remove*RandomListener*(l);
}
Справочная информация:
У меня есть JComponent с неизвестным количеством слушателей (случайных типов). Поскольку виджет должен быть удален из видимой части (и больше не понадобится), он должен быть уничтожен (и прослушиватели должны быть удалены).
спасибо заранее Джоан!--2-->
2 ответов
Если вы удалите виджет из родителя, он никогда не должен запускаться для событий снова, и слушатели должны быть освобождены автоматически gc
единственная причина, по которой слушатели не будут освобождены, - это утечка, которая сохраняет виджет доступным, даже если он не должен быть