java中的dispose()方法


    從JAVA 1.5 的幫助文檔的原文 - dispose - public void dispose()

    釋放由此 Window、其子組件及其擁有的所有子組件所使用的所有本機屏幕資源。即這些 Component 的資源將被破壞,它們使用的所有內存都將返回到操作系統,並將它們標記為不可顯示。 通過隨后對 pack 或 show 的調用重新構造本機資源,可以再次顯示 Window 及其子組件。重新創建的 Window 及其子組件的狀態在移除 Window 的點上與這些對象的狀態將是一樣的(不考慮這些操作之間的其他更改)。

注:當 Java 虛擬機 (VM) 中最后的可顯示窗口被移除后,虛擬機可能會終止。

    實際上就是說明了兩層意思: 1.使用dispose()方法關閉窗體會釋放該窗體的占用的部分資源,不過呢不是全部的,如上面說的,只是屏幕資源。2.使用dispose()方法關閉的窗體可以使用pack 或 show 方法恢復,並且可以恢復到dispose前的狀態(呵呵~感覺好神奇的,一開始都不相信)

    關於上面的還有幾點要說明的就是:1.如果dispose掉最后的窗體(程序啟動就顯示的那個),程序將終止。2.在JDK1.5中,show方法已經過時,被setVisible(boolean)方法代替,不過,使用dispose()和setVisible()方法,在表象上沒有任何區別,它們的實質區別在於setVisible方法僅僅隱藏窗體,而dispose方法是關閉窗體,並釋放一部分資源。


    我的理解是dispose是 java.awt.Windows類的方法,它的作用是銷毀程序中指定的圖形界面資源,對數據資源不產生影響,所以當我們在SWing或是AWT中的圖形界面組件時如果調用它,組建內的數據對象不會消失,只有在這些數據資源其他地方沒有再使用后才會由垃圾回收機制處理掉。


注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2021 ITdaan.com