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中的圖形界面組件時如果調用它,組建內的數據對象不會消失,只有在這些數據資源其他地方沒有再使用後纔會由垃圾回收機制處理掉。
發佈了27 篇原創文章 · 獲贊 32 · 訪問量 10萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章