有一种从JComponent中删除所有Listener的简单方法吗?
JComponent widget = getComponentOverScaryMethod();
EventListener[] listners = widget.getListeners(EventListener.class);
for (EventListener l : listners) {
widget.remove*RandomListener*(l);
}
背景:
我有一个JComponent,其侦听器数量未知(随机类型)。由于小部件应该从可见部分中删除(并且不再需要),因此应该销毁它(并且应该删除监听器)。
提前致谢 琼
答案 0 :(得分:4)
答案 1 :(得分:1)
如果从父项中删除小部件,则不应再次触发事件,并且应通过gc自动释放侦听器
侦听器不会被释放的唯一原因是泄漏会使小部件保持可访问性,即使它不应该是