最近踩的坑:
看看代码:
结果 造成了进程一直占用内存,这个dialog 结束了还是占着内存
解决方法:
原因:
首先 dispose()只是释放窗口在屏幕上的资源,但是这个dialog 里面的数据,方法还是在的,这个是一堆数据,所以一直占着进程。直到这个应用全部结束,这部分资源被回收机制回收了。
再说说 setDefaultCloseOperation 是设置窗体关闭的方法,就是点窗口那个x 之后需要干什么。
最后 我开始的程序里面没有加
this.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
这句的影响,就是dialog 默认成 this.setDefaultCloseOperation(JDialog.HIDE_ON_CLOSE );
只是隐藏窗体。
换句话说:
dispose 是关闭窗体的图像,但是没有释放这个dialog 的资源。
加了最后一句,就是告诉窗体关闭之后,还要释放这些资源,相当于后面加了System.exti(0)