下面将GirdLayout, BorderLayout, FlowLayout布局管理器结合起来设计一个综合实例,主要思路是用GirdLayout布局管理器与顶层窗口关联,在这个布局管理器中添加FlowLayout布局管理器和BorderLayout布局管理器,最后在这些布局管理器中添加控件。实例代码如下所示:
public class BWF{
static int width=400;
static int height=600;
public static void main(String[] args){
JFrame jf=new JFrame("GridLayout布局管理器");
jf.setSize(width, height);
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jf.setVisible(true);
JPanel contentPane=new JPanel();
jf.setContentPane(contentPane);//将中间容器组件对象contentPane设置为内容面板
jf.setLayout(new GridLayout(3, 2));//创建一个GridLayout布局管理对象,设置为2行3列。将中间容器设置为此布局管理
JPanel p1=new JPanel();
JPanel p2=new JPanel();
JPanel p3=new JPanel();
JPanel p4=new JPanel();
JPanel p5=new JPanel();
contentPane.add(p1);
contentPane.add(p2);
contentPane.add(p3);
contentPane.add(p4);
contentPane.add(p5);
JButton b1=new JButton("港元");//创建25个普通按钮组件
JButton b2=new JButton("人民币");
JButton b3=new JButton("美元");
JButton b4=new JButton("欧元");
JButton b5=new JButton("英镑");
JButton b6=new JButton("主板");
JButton b7=new JButton("内存条");
JButton b8=new JButton("鼠标");
JButton b9=new JButton("显示器");
JButton b10=new JButton("键盘");
JButton b11=new JButton("大米");
JButton b12=new JButton("蔬菜");
JButton b13=new JButton("牛肉");
JButton b14=new JButton("鸡肉");
JButton b15=new JButton("茄子");
JButton b16=new JButton("面包");
JButton b17=new JButton("蛋糕");
JButton b18=new JButton("苹果派");
JButton b19=new JButton("巧克力");
JButton b20=new JButton("果冻");
JButton b21=new JButton("文件夹");
JButton b22=new JButton("涂改液");
JButton b23=new JButton("铅笔");
JButton b24=new JButton("办公桌");
JButton b25=new JButton("钢笔");
p1.setLayout(new BorderLayout());//将p1面板设置为BorderLayout
p1.add(b1,BorderLayout.WEST);//将1-5普通按钮添加到p1面板中
p1.add(b2,BorderLayout.SOUTH);
p1.add(b3,BorderLayout.EAST);
p1.add(b4,BorderLayout.NORTH);
p1.add(b5,BorderLayout.CENTER);
p2.setLayout(new BorderLayout());
p2.add(b6,BorderLayout.WEST);//将6-10普通按钮添加到p2面板中
p2.add(b7,BorderLayout.SOUTH);
p2.add(b8,BorderLayout.EAST);
p2.add(b9,BorderLayout.NORTH);
p2.add(b10,BorderLayout.CENTER);
p3.setLayout(new FlowLayout());//将p3面板设置为FlowLayout
p3.add(b11);//将11-15普通按钮添加到p3面板中
p3.add(b12);
p3.add(b13);
p3.add(b14);
p3.add(b15);
p4.setLayout(new BorderLayout());
p4.add(b16,BorderLayout.WEST);//将16-20普通按钮添加到p4面板中
p4.add(b17,BorderLayout.SOUTH);
p4.add(b18,BorderLayout.EAST);
p4.add(b19,BorderLayout.NORTH);
p4.add(b20,BorderLayout.CENTER);
p5.setLayout(new BorderLayout());
p5.add(b21,BorderLayout.WEST);//将21-25普通按钮添加到p5面板中
p5.add(b22,BorderLayout.SOUTH);
p5.add(b23,BorderLayout.EAST);
p5.add(b24,BorderLayout.NORTH);
p5.add(b25,BorderLayout.CENTER);
}
}