2011-10-18 16 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()はにcontentPaneとして作用するのJFrameを保持する容器(実際のJPanel)を返します。次にadd(...)メソッドは、contentPaneにJLabelを追加します。順序は右から左です。

これは同等です:

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. ... ...
  3. を渡して、そのオブジェクトのadd()メソッドを呼び出して...以前に構築さJLabelインスタンス(label変数)

左から右に読むだけです。

関連する問題