[英]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(...)
每個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.