繁体   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