危险的dispose()

我之前的程序时用dispose()关闭的,感觉怎么越来越慢,打开进程才发现javaw没有关闭,才发现我用错了,关闭进程只能用System.exit(0),强制终止虚拟机。
- public void dispose()
释放由此 Window、其子组件及其拥有的所有子组件所使用的所有本机屏幕资源。即这些 Component 的资源将被破坏,它们使用的所有内存都将返回到操作系统,并将它们标记为不可显示。

通过随后对 pack 或 show 的调用重新构造本机资源,可以再次显示 Window 及其子组件。重新创建的 Window 及其子组件的状态在移除 Window 的点上与这些对象的状态将是一样的(不考虑这些操作之间的其他更改)。
注:当 Java 虚拟机 (VM) 中最后的可显示窗口被移除后,虚拟机可能会终止。

实际上就是说明了两层意思:
1.使用dispose()方法关闭窗体会释放该窗体的占用的部分资源,不过呢不是全部的,如上面说的,只是屏幕资源。
2.使用dispose()方法关闭的窗体可以使用pack 或 show 方法恢复,并且可以恢复到dispose前的状态(呵呵~感觉好神奇的,一开始都不相信)
关于上面的还有几点要说明的就是
>>如果dispose掉最后的窗体(程序启动就显示的那个),程序将终止。
>>在JDK1.5中,show方法已经过时,被setVisible(boolean)方法代替,
不过,使用dispose()和setVisible()方法,在表象上没有任何区别,它们的实质区别在于setVisible方法仅仅隐藏窗体,而dispose方法是关闭窗体,并释放一部分资源。
发布了11 篇原创文章 · 获赞 0 · 访问量 3140

猜你喜欢

转载自blog.csdn.net/sayiaina/article/details/83735872