小博老师:
下面在列举一个稍微复杂的实例。在实例中将5个不同的内容面板放到与顶层窗口相关联的内容面板后,再在每个内容面板中添加组件,其代码如下所示:
public class BWF {
static int width=800;
static int height=600;
public static void main(String[] args){
JFrame jf=new JFrame("t布局管理器测试实例");
jf.setSize(width, height);
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jf.setVisible(true);
JPanel contentPane=new JPanel();
jf.setContentPane(contentPane);//将中间容器组件对象contentPane设置为内容面板
JButton button1=new JButton("p1东");//创建25个按钮组件
JButton button2=new JButton("p1南");
JButton button3=new JButton("p1西");
JButton button4=new JButton("p1北");
JButton button5=new JButton("p1中");
JButton button6=new JButton("p2东");
JButton button7=new JButton("p2南");
JButton button8=new JButton("p2西");
JButton button9=new JButton("p2北");
JButton button10=new JButton("p2中");
JButton button11=new JButton("p3东");
JButton button12=new JButton("p3南");
JButton button13=new JButton("p3西");
JButton button14=new JButton("p3北");
JButton button15=new JButton("p3中");
JButton button16=new JButton("p4东");
JButton button17=new JButton("p4南");
JButton button18=new JButton("p4西");
JButton button19=new JButton("p4北");
JButton button20=new JButton("p4中");
JButton button21=new JButton("p5东");
JButton button22=new JButton("p5南");
JButton button23=new JButton("p5西");
JButton button24=new JButton("p5北");
JButton button25=new JButton("p5中");
BorderLayout lay=new BorderLayout();
jf.setLayout(lay);//创建一个布局管理对象,将中间容器设置为此布局管理
JPanel p1=new JPanel();//创建5个中间容器,并且将它们的设成BorderLayout方式
JPanel p2=new JPanel();
JPanel p3=new JPanel();
JPanel p4=new JPanel();
JPanel p5=new JPanel();
contentPane.add(p1,"West");//将5个中间容器对象分别加入到上层中间容器中,并且按照BorderLayout的方式进行布局
contentPane.add(p2,"North");
contentPane.add(p3,BorderLayout.EAST);
contentPane.add(p4,BorderLayout.SOUTH);
contentPane.add(p5,BorderLayout.CENTER);
p1.setLayout(new BorderLayout());
p1.add(button1,BorderLayout.WEST);//将第1-5个普通按钮组件按照BorderLayout方式布局到p1中间容器中
p1.add(button2,BorderLayout.NORTH);
p1.add(button3,BorderLayout.EAST);
p1.add(button4,BorderLayout.SOUTH);
p1.add(button5,BorderLayout.CENTER);
p2.setLayout(new BorderLayout());
p2.add(button6,BorderLayout.WEST);//将第6-10个普通按钮组件按照BorderLayout方式布局到p2中间容器中
p2.add(button7,BorderLayout.NORTH);
p2.add(button8,BorderLayout.EAST);
p2.add(button9,BorderLayout.SOUTH);
p2.add(button10,BorderLayout.CENTER);
p3.setLayout(new BorderLayout());
p3.add(button11,BorderLayout.WEST);//将第11-15个普通按钮组件按照BorderLayout方式布局到p3中间容器中
p3.add(button12,BorderLayout.NORTH);
p3.add(button13,BorderLayout.EAST);
p3.add(button14,BorderLayout.SOUTH);
p3.add(button15,BorderLayout.CENTER);
p4.setLayout(new BorderLayout());
p4.add(button16,BorderLayout.WEST);//将第16-20个普通按钮组件按照BorderLayout方式布局到p4中间容器中
p4.add(button17,BorderLayout.NORTH);
p4.add(button18,BorderLayout.EAST);
p4.add(button19,BorderLayout.SOUTH);
p4.add(button20,BorderLayout.CENTER);
p5.setLayout(new BorderLayout());
p5.add(button21,BorderLayout.WEST);//将第21-25个普通按钮组件按照BorderLayout方式布局到p5中间容器中
p5.add(button22,BorderLayout.NORTH);
p5.add(button23,BorderLayout.EAST);
p5.add(button24,BorderLayout.SOUTH);
p5.add(button25,BorderLayout.CENTER);
}
}
上面使用了布局管理器内嵌的方式。每个方位都添加一个中间容器又使用一个BorderLayout布局管理器来布局其中的组件。