JFrame與getContentPane()

public class JFrame
extends Frameimplements WindowConstants, Accessible, RootPaneContainer

java.awt.Frame 的擴展版本,該版本添加了對 JFC/Swing 組件架構的支持。有關使用 JFrame 的面向任務的文檔,請參閱《The Java Tutorial》中的 How to Make Frames 一節。

JFrame 類與 Frame 輕微不兼容。與其他所有 JFC/Swing 頂層容器一樣,JFrame 包含一個 JRootPane 作爲其惟一的子容器。根據規定,根窗格所提供的內容窗格應該包含 JFrame 所顯示的所有非菜單組件。這不同於 AWT Frame。作爲 add 的便捷方法及其變體,已經重寫了 removesetLayout,以在必要時將其轉發到 contentPane。這意味着可以編寫:

       frame.add(child);
 

子級將被添加到 contentPane。內容窗格始終是非 null 的。試圖將其設置爲 null 會導致 JFrame 拋出異常。默認的內容窗格上會設置有 BorderLayout 管理器。有關添加、移除和設置 JFrameLayoutManager 的詳情,請參閱 RootPaneContainer

Frame 不同,當用戶試圖關閉窗口時,JFrame 知道如何進行響應。用戶關閉窗口時,默認的行爲只是簡單地隱藏 JFrame。要更改默認的行爲,可調用方法 setDefaultCloseOperation(int)。要使 JFrame 的行爲與 Frame 實例相同,請使用 setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE)

有關內容窗格和根窗格提供的其他功能的更多信息,請參閱《The Java Tutorial》中的 Using Top-Level Containers 一節。

在多屏幕環境中,可以在不同的屏幕設備上創建一個 JFrame。有關更多信息,請參閱 Frame

警告:此類的序列化對象與以後的 Swing 版本不兼容。當前序列化支持適用於短期存儲,或適用於在運行相同 Swing 版本的應用程序之間進行 RMI(Remote Method Invocation,遠程方法調用)。從 1.4 版本開始,已在 java.beans 包中添加了支持所有 JavaBeansTM 長期存儲的功能。請參見 XMLEncoder

發佈了35 篇原創文章 · 獲贊 0 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章