java框架和标签

时间:2011-10-18 00:17:07

标签: java swing jframe jlabel

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

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);

2 个答案:

答案 0 :(得分:4)

你没有“调用一个对象”,你调用一个对象的实例方法(在这种情况下)。 add()方法是框架内容窗格的一种方法,(在本例中)采用JLabel参数。

  1. 调用frame的{​​{1}}方法,然后......
  2. ...调用该对象的getContentPane()方法,传递...
  3. ...之前构建的add()实例(JLabel变量)
  4. 只需从左到右阅读。

答案 1 :(得分:3)

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);