getContentPane() 究竟做了什么?

新手上路,请多包涵

何时使用:

 Container c = getContentPane();

以及何时使用:

 frame.getContentPane();

原文由 Chinmay Kale 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.3k
2 个回答

如果代码是 JFrame 子类的一部分,您应该使用 getContentPane() 。如果代码不是框架的一部分(也许你在应用程序的 static main() 方法中),那么你需要使用 JFrame 对象调用 getContentPane() ;这就是 frame.getContentPane() 所做的。

例子:

 public class TestApp extends JFrame {
    public static void main(String[] args) {
        TestApp frame = new TestApp();
        Container c = frame.getContentPane();
        // do something with c
        frame.pack();
        frame.show();
    }

    /* constructor */
    public TestApp() {
        Container c = getContentPane(); // same as this.getContentPane()
        // initialize contents of frame
    }
}

原文由 Ted Hopp 发布,翻译遵循 CC BY-SA 3.0 许可协议

getContentPane().setBackground(Color.YELLOW);


这行代码比较难懂,导师会在你继续学习Java的过程中,为你完全理解它打下基础。首先要考虑的是有关使用 方法 修改 对象 的规则。 句号 左边是 对象,修改 对象方法句号右边。该规则适用于此。

一个 容器里面 有好几层。您可以将层视为覆盖在 容器 上的透明薄膜。在 Java Swing 中,用于保存对象的层称为 内容窗格。对象被添加到容器的内容窗格层。 getContentPane() 方法检索内容窗格图层,以便您可以向其中添加对象。内容窗格是由 Java 运行时环境创建的对象。您不必知道内容窗格的名称即可使用它。当您使用 getContentPane() 时,内容窗格对象将在那里被替换,以便您可以对其应用方法。在这行代码中,我们没有向内容窗格添加对象。相反,我们将内容窗格的颜色设置为黄色。这行代码将默认颜色白色更改为黄色,您可能还记得在浏览器中运行的程序示例中看到的黄色矩形。这行代码使那个矩形区域变成黄色。

考虑这一点的一种方法是将内容窗格对象替换为 getContentPane() 方法,如下所示:

 contentpaneobject.setBackground(Color.YELLOW);

尽管您从未真正看到上面的 语句,但您确实拥有该 语句 的功能。当您使用 getContentPane() 方法 检索 内容窗格 时,您可以修改 内容窗格对象,该对象在上面的示例中被任意命名为 contentpaneobject。在此语句中,修改是更改内容窗格的颜色。接下来将在导师中介绍该步骤。

注意 getContentPane() 的形式作为 方法。该方法以小写字母开头,并带有括号。括号是空的。

在此处输入图像描述

在此处输入图像描述

原文由 Jaimin Patel 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏