Java JFrame类中的getcontentpane方法

Java JFrame类中的getcontentpane方法,java,Java,JFrame类中的getContentPane方法有什么用途?我用谷歌搜索了一下,但找不到合适的答案 class MainFrame extends JFrame { public MainFrame(String title) { super(title); // Set layout manager setLayout(new BorderLayout()); // Create Swing component

JFrame类中的
getContentPane
方法有什么用途?我用谷歌搜索了一下,但找不到合适的答案

class MainFrame extends JFrame {

    public MainFrame(String title) {
        super(title);

        // Set layout manager
        setLayout(new BorderLayout());

        // Create Swing component
         JTextArea textArea = new JTextArea();
        JButton button = new JButton("Click me!");

        // Add Swing components to content pane
        Container c = getContentPane();

        c.add(textArea, BorderLayout.CENTER);
        c.add(button, BorderLayout.SOUTH);

        JButton button1 = new JButton("Click me again!");
        add(button1,BorderLayout.NORTH);
        button.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {
                textArea.append("Hello\n");
            }

        });
        button1.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {
                textArea.append("Hello\n");
            }

        });

    }
}

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

getContentPane()方法检索内容窗格层,以便向其中添加对象

内容窗格是由Java运行时环境创建的对象。您不必知道内容窗格的名称即可使用它

getContentPane()
返回用于保存对象的容器。您可以在返回的容器上添加对象,而不是直接将对象添加到JFrame或JDialog

JFrame类中getcontentpane方法的用途是什么

在这种情况下,没有。由于Java1.5
add
自动将组件添加到
ContentPane
so

c.add(textArea, BorderLayout.CENTER);
可以写成

add(textArea, BorderLayout.CENTER); // can drop BorderLayout.CENTER obviously
类似于处理
按钮1
的方式

在某些情况下,获取
ContentPane
仍然很有用,例如

setLayout(new BoxLayout(getContentPane(), BoxLayout.PAGE_AXIS));
getVontetPane()将返回框架的contentpane。
Contentpane就像是一个添加所有组件的地方。

我不明白。当我们通过框架中的容器或没有容器添加按钮时,我们得到的结果是相同的。为什么?编辑了答案。希望您能理解。因为它返回了JFrame的默认内容窗格,它遵循边框布局。您可以将一个像JPanel这样的容器添加到框架中,然后将对象添加到框架中。添加到由
getContentPane
返回的容器与直接添加到JFrame中是一样的。那么为什么我们有这样的方法?它的用途是什么。请给我举个适当的例子。