布局管理器是容器类的特性,每种容器都有一种默认的布局管理器。
在java.awt中共提供了5个布局管理类,分别是FlowLayout,BorderLayout,CardLayout,GridLayout,GridBagLayout,每一个布局类都对应一种布局策略,它们都是java.lang.Object的子类。
1.BorderLayout类
BorderLayout(边布局)的策略是将被划分为东西南北中,分别用East,West,South,North,Center表示。往容器中加入组件都要指定放在哪个区域。
BorderLayout类的构造方法:
BorderLayout() //创建新的Borderlayout布局
BorderLayout(int hgap,int vgap) //创建组件之间水平与垂直间距分别为hgap与vgap个像素的布局
向容器中添加BorderLayout类布局管理器的事例:
伪码
frm //窗口对象
lagout //布局管理器对象
butt //按钮对象
frm.setLayout(layout); //给frm添加布局管理器layout
frm.add(butt,BorderLayout.NORTH); //将按钮组件定位在窗口北部,其他方向同理
2.FlowLayout类
FlowLayout类(流式布局)的布局策略提供按行布局组件方式,将组件按照从左到右,从上到下的顺序排列
FlowLayout类的构造方法:
FlowLayout() //创建FlowLayout布局,组件使用默认的居中对齐方式,各组件的垂直与水平间距都是5像素
FlowLayout(int align) //创建FlowLayout布局,对齐方式为指定的align,align的取值有FlowLayout.LEFI,FlowLayout.CENTER,FlowLayout.RIGHT,分别代表靠左,中间,靠右对齐,各组件的垂直与水平距离是5像素
容器中添加FlowLayout类布局的例子:
伪码
frm //窗口对象
but1 but2 //按钮对象
txt1,txt2 //文本行对象
layout //FlowLayout布局对象
frm.setLayout(layout);
frm.add(but1);
frm.add(but2);
frm.add(txt1);
frm.add(txt2);
3.GridLayout类
GridLayout类(网格布局)管理器将容器划分为大小相等的若干行,若干列的网格,组件按照从左到右,从上到下的顺序依次放入各网格中,每个组件占满一格,如果组件数比网格数多,系统将自动增加网格数,如果组件数比网格数少,未用的网格区空闲。
GridLayout类的构造方法:
GridLayout() //创建具有一行一列的GridLayout布局
GridLayout(int rows,int cols) //创建具有rows行,cols列的GridLayout布局
GridLayout(int rows,int cols,int hgap,int vgap) // 创建具有rows行,cols列的的的GridLayout布局,组件的行间距和列间距分别为hgap和vgap像素
容器中添加GridLayour类布局的事例:
伪码
frm //窗口对象
layout //GridLayout对象
num[i] //Sting类数组
frm.setLayout(layout);
for(int j=0;j<i;j++)
{
frm.add(new Button(num[j]));
}