有关於Java Swing 监听器是否要删除的问题?
如上,我想知道,在JDialog上有个JButton,当他新增一个actionlistener,之后这个JDialog都不会再显示了,那这个监听器需要删除吗?...
如上,我想知道,在JDialog上有个 JButton,当他新增一个 actionlistener,之后这个JDialog都不会再显示了,那这个监听器需要删除吗?
展开
展开全部
这需要看你的actionlistener的声明域在哪,如果是在某个类的对象的内部,那么如果持有这个listener的对象全都没了,那么那个actionlistener也就没了,如果你的actionlistener是一个匿名的对象或者是在一个方法的内部声明后直接注册给JDialog,那么持有actionlistener的对象就只有你那个JDialog,当持有你那个JDialog消失(对象被gc回收,不是界面消失)后,actionlistener也就跟着没了。所以删不删看你的逻辑是怎样的。这和c++的new不一样,c++需要自己删除动态生成的对象,java有gc管理不再需要的对象,所以不用管它删还是不删,不许要的时候只需要将引用置为null就行了。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询