2011-10-18 66 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變量)

請從左至右閱讀。