博为峰小博老师:
下面在列举一个稍微复杂的实例。在实例中将5个不同的内容面板放到与顶层窗口相关联的内容面板后,再在每个内容面板中添加组件,其代码如下所示:
publicclassBWF {
staticintwidth=800;
staticintheight=600;
publicstaticvoidmain(String[] args){
JFrame jf=newJFrame("BorderLayout布局管理器测试实例");
jf.setSize(width,height);
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jf.setVisible(true);
JPanel contentPane=newJPanel();
jf.setContentPane(contentPane);//将中间容器组件对象contentPane设置为内容面板
JButton button1=newJButton("p1东");//创建25个按钮组件
JButton button2=newJButton("p1南");
JButton button3=newJButton("p1西");
JButton button4=newJButton("p1北");
JButton button5=newJButton("p1中");
JButton button6=newJButton("p2东");
JButton button7=newJButton("p2南");
JButton button8=newJButton("p2西");
JButton button9=newJButton("p2北");
JButton button10=newJButton("p2中");
JButton button11=newJButton("p3东");
JButton button12=newJButton("p3南");
JButton button13=newJButton("p3西");
JButton button14=newJButton("p3北");
JButton button15=newJButton("p3中");
JButton button16=newJButton("p4东");
JButton button17=newJButton("p4南");
JButton button18=newJButton("p4西");
JButton button19=newJButton("p4北");
JButton button20=newJButton("p4中");
JButton button21=newJButton("p5东");
JButton button22=newJButton("p5南");
JButton button23=newJButton("p5西");
JButton button24=newJButton("p5北");
JButton button25=newJButton("p5中");
BorderLayout lay=newBorderLayout();
jf.setLayout(lay);//创建一个布局管理对象,将中间容器设置为此布局管理
JPanel p1=newJPanel();//创建5个中间容器,并且将它们的布局管理器设成BorderLayout方式
JPanel p2=newJPanel();
JPanel p3=newJPanel();
JPanel p4=newJPanel();
JPanel p5=newJPanel();
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(newBorderLayout());
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(newBorderLayout());
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(newBorderLayout());
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(newBorderLayout());
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(newBorderLayout());
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布局管理器来布局其中的组件。