JavaGUI:关于getContentPane()方法和内容

JavaGUI:关于getContentPane()方法和内容,java,swing,jframe,Java,Swing,Jframe,在这段代码中: JLabel emptyLabel = new JLabel(""); emptyLabel.setPreferredSize(new Dimension(175, 100)); frame.getContentPane().add(emptyLabel, BorderLayout.CENTER); 我可以看到它创建了一个新标签并将其添加到JFrame对象frame。 但是我想了解getContentPane()做什么,为什么我需要它 我读了,但还是不明白。JFrame是头部组

在这段代码中:

JLabel emptyLabel = new JLabel("");
emptyLabel.setPreferredSize(new Dimension(175, 100));
frame.getContentPane().add(emptyLabel, BorderLayout.CENTER);
我可以看到它创建了一个新标签并将其添加到
JFrame
对象
frame
。 但是我想了解
getContentPane()
做什么,为什么我需要它


我读了,但还是不明白。

JFrame是头部组件,它与其他子组件组合在一起。With getContentPane()获取表示图形用户界面内容的组件。例如,JMenuBar被放置在框架的contentPane旁边的另一个区域。

每个
JPanel
都是一个容器,因此可以将其添加到面板,然后添加到容器中,或者直接使用
add(component)
或使用
getContentPane().add
方法。两者都将组件添加到Java 7中的容器中(我不知道版本6是否有问题)。

每个Swing顶级容器(和JInternalFrame)都有一个称为
JRootPane的组件。它负责实际管理窗口的总体布局

根窗格有许多层,其中一层是内容窗格。当您向一个框架添加某些内容时(我认为是Java 5),它会自动添加到内容窗格中,在此之前,您必须自己调用
getContentPane().add(…)


看看一个容器中有好几层。您可以将层视为覆盖在容器上的透明薄膜。在JavaSwing中,用于保存对象的层称为内容窗格。对象被添加到容器的内容窗格层


getContentPane()方法检索内容窗格层,以便向其中添加对象。内容窗格是由Java运行时环境创建的对象。您不必知道内容窗格的名称即可使用它。当您使用
getContentPane()
时,内容窗格对象将在那里被替换,以便您可以对其应用一种方法。

好故事:lool,那篇极客文章xd“为了方便
添加
及其变体…已被覆盖,以便根据需要转发到
内容窗格。”-该特性出现在Java5.+1中,这是一篇很好且合适的帖子。像我这样的新手也能理解:)谢谢