【问题标题】:java frame and labeljava框架和标签
【发布时间】:2011-10-18 00:17:06
【问题描述】:

我编写了我的程序,但我不明白为什么它可能 可以写

frame.getContentPane().add(label);

我对上面代码与下面完整代码对应的方法顺序感到困惑。

是add方法调用label对象,然后调用getContentPane方法到frame对象。任何人都可以就这个概念启发我。如果我能更好地完全理解java,那将有很大帮助。 :)

JFrame frame = new JFrame ("HelloWorldSwing");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

// set the label
JLabel label = new JLabel("Hello world");
frame.getContentPane().add(label);

frame.setVisible(true);

【问题讨论】:

    标签: java swing jframe jlabel


    【解决方案1】:

    您不是“调用对象”,而是调用对象的实例方法(在这种情况下)。 add() 方法是框架内容窗格的一种方法,(在这种情况下)采用 JLabel 参数。

    1. 调用framegetContentPane()方法,然后...
    2. ...调用该对象的add() 方法,通过...
    3. ...先前构造的JLabel 实例(label 变量)

    从左到右阅读。

    【讨论】:

      【解决方案2】:

      frame.getContentPane() 返回一个 JFrame 拥有的 Container(实际上是一个 JPanel),作为它的 contentPane。然后add(...) 方法将JLabel 添加到contentPane。顺序是从左到右。

      这是等价的:

      JFrame frame = new JFrame ("HelloWorldSwing");
      frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      
      JLabel label = new JLabel("Hello world");
      Container contentPane = frame.getContentPane();
      contentPane.add(label);
      

      【讨论】:

        猜你喜欢
        • 2021-11-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-01-27
        • 2015-05-18
        • 2015-10-20
        • 2016-09-20
        • 1970-01-01
        相关资源
        最近更新 更多