2011-10-18 115 views
1

我写了我的计划,但我没有得到为什么它可能 到可以写的Java框架和标签

frame.getContentPane().add(label);

我对与对应上面的代码方法的顺序混乱下面的完整代码。

是add方法调用标签对象,然后调用getContentPane方法到框架对象。任何人都可以启发我关于这个概念。如果我能更好地理解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); 

回答

3

frame.getContentPane()返回JFrame中认为,作为它的contentPane容器(实际上是一个JPanel)。然后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); 
4

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

  1. 呼叫framegetContentPane()方法,然后...
  2. ...调用该对象的add()方法,传递...
  3. ...先前构建JLabel实例(label变量)

请从左至右阅读。