1、 將組件添加到JFrame中
方式之一:
frame.getContentPane().add(childComponent)
用getContentPane()方法獲得JFrame的內容面板,再對其加入組件,一般只使用該方式添加組件。
向JFrame中添加組件的兩種方式之二:
把組件添加到Jpanel之類的中間容器中,用setContentPane()方法把該容器置為JFrame的內容面板:
Jpanel contentPane=new Jpanel( );
……//把其它組件添加到Jpanel中;
frame.setContentPane(contentPane);
注意:用setContentPane()方法不允許設置窗體布局,其只顯示最后添加的組件,且該組件將布滿整個窗口,而不管原先組件的大小設置,相當於只允許添加一次組件作為JFrame的內容面板。所以一般不實用該方法進行添加組件(可能是我不知道吧)。
2、 JPanel的使用

JPanel是java圖形化界面中最常使用的容器。
實例:在窗體中添加一個藍色的面板
// PanelDemo.java
import javax.swing.*;
import java.awt.*; //引入AWT包,因為要使用到顏色類
class PanelDemo {
public static void main(String[] args)throws Exception
{ JFrame f=new JFrame("第一個Java窗口");
f.setSize(300,200);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setVisible(true);
f.setResizable(false);
f.setLocationRelativeTo(null) ;
f.setLayout(null); //設置窗體布局為空布局
JPanel p=new JPanel(); //實例化一個面板
//設置面板背景色為藍色,如果不引入AWT包,程序將出錯,可以試試看
p.setBackground(Color.BLUE);
p.setSize(100,100); //設置面板對象大小
f.getContentPane().add(p); //將面板添加到窗體中
//如果使用下面添加面板的方法,面板將布滿整個窗口,可以試試看
//f. setContentPane(p);
}
}
中間容器可以嵌套中間容器
實例2:面板的嵌套
import java.awt.*;
import javax.swing.*;
class TwoPanel extends JFrame {
public TwoPanel( String title){
super(title);
}
public static void main(String args[]) {
TwoPanel fr=new TwoPanel("Two Panel測試");
JPanel pan1 = new JPanel();
JPanel pan2 = new JPanel();
fr.setLayout(null);
fr.getContentPane().setBackground(Color.green); //設置窗口的顏色
fr.setSize(250,250);
pan1.setLayout(null); //設置面板為空布局
pan1.setBackground(Color.red);
pan1.setSize(150,150);
pan2.setBackground(Color.yellow);
pan2.setSize(50,50);
pan1.add(pan2); //將面板pan2添加到pan1中
//將pan1添加到窗體中,因為pan2被添加到pan1中,所以pan1、pan2都被顯示在窗體中
fr.getContentPane().add(pan1);
fr.setVisible(true);
fr.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
