簡體   English   中英

Java GUI:關於getContentPane()方法和內容

[英]Java GUI: about getContentPane( ) method and content

在這段代碼中:

JLabel emptyLabel = new JLabel("");
emptyLabel.setPreferredSize(new Dimension(175, 100));
frame.getContentPane().add(emptyLabel, BorderLayout.CENTER);

我可以看到它生成一個新標簽並將其添加到JFrame對象frame 但我想了解getContentPane()做了什么,為什么需要它呢?

我讀了這個API,但我仍然不明白。

每個Swing頂級容器(和JInternalFrame)都有一個叫做JRootPane 這負責實際管理窗口的整體布局。

在此輸入圖像描述

根窗格有許多層,其中一個是內容窗格。 當您向框架添加內容時(我認為是Java 5),它會自動添加到內容窗格中,在此之前,您必須調用getContentPane().add(...)自己getContentPane().add(...)

看看如何使用RootPanes

每個JPanel都是一個容器,所以要么將它添加到面板然后將其添加到容器中,要么直接使用add(component)或使用getContentPane().add方法。 兩者都將組件添加到Java 7中的容器中( 我不知道版本6是否存在此問題 )。

容器中有幾層。 您可以將圖層視為覆蓋容器的透明膠片。 在Java Swing中,用於保存對象的圖層稱為內容窗格 對象將添加到容器的內容窗格層。

getContentPane()方法檢索內容窗格層,以便您可以向其添加對象。 內容窗格是Java運行時環境創建的對象。 您不必知道要使用它的內容窗格的名稱。 當您使用getContentPane() ,內容窗格對象將替換在那里,以便您可以將方法應用於它。

JFrame是與其他子組件放在一起的headcomponent。 使用getContentPane()獲取表示圖形用戶界面內容的組件。 例如,JMenuBar放置在框架的contentPane旁邊的另一個區域中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM