2011-05-31 77 views
8

是否有一种简单的方法可以从JComponent中删除所有监听器?如何删除SWING JComponents上的监听器

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

背景:

我有一个JComponent与监听器(随机型)的未知量。由于小部件应该从可见部分移除(并且不再需要),它应该被销毁(并且应该删除监听器)。

在此先感谢 琼

+1

该组件不会再被使用吗? – RMT 2011-05-31 16:40:36

回答

1

如果你从它不应该事件再次引发了家长和删除小部件听众应该自动释放gc

onl y原因听众不会被释放是通过泄漏来保持小部件可到达,即使它不应该是