BorderLayout布局管理器:
BorderLayout 也是一种非常简单的布局策略,它把容器内的空间简单地划分为:North,South,East,West和Center 5个区域,每加入一个组件都应该指明把这个组件加在哪个区域中。BorderLayout是顶层容器(Window,Frame, Dialog)的默认布局管理器。
BorderLayout界面最多只能显示5个控件,若在一个区域中加上多个component,则只有最后加上的那个是可见的。加入控件的时候,可以指定加入的方位,默认的情况是加入到中间。
当容器的大小发生变化时,用BorderLayout管理的组件会发生变化,其变化规律是:组件的相对位置不变,大小发生变化.例如容器变高了,则North、South 区域不变,West、Center、East区域变高;如果容器变宽了,West、East区域不变,North、Center、South区域变宽.不一定所有的区域都有组件,如果四周的区域(West、East、North、South区域)没有组件,则由Center区域去补充,但是如果 Center区域没有组件,则保持空白.
//使用BorderLayout的构造方法,可设置其component的间距。如:
BorderLayout(); //component间没有间距
BorderLayout(int hgap,int vgap); // hgap和vgap分别对应水平和垂直方向的间距。
import java.awt.*;
public class buttonDir{
public static void main(String args[]){
Frame f = new Frame("BorderLayout");
f.setLayout(new BorderLayout());
f.add("North", new Button("North");
f.add("South", new Button("South");
f.add("East", new Button("East");
f.add("West", new Button("West");
f.add("Center", new Button("Center");
f.setSize(200,200);
f.setVisible(true);
}
}
FlowLayout布局管理器:
流式布局管理器把容器看成一个行集,好象平时在一张纸上写字一样,一行写满就换下一行。行高是用一行中的控件高度决定的。FlowLayout是Panel的默认布局。在生成流式布局时能够指定显示的对齐方式,默认情况下是居中(FlowLayout.CENTER)。当容器的大小发生变化时,用FlowLayout管理的组件会发生变化,其变化规律是:组件的大小不变,但是相对位置会发生变化.
FlowLayout() //生成一个默认的流式布局,组件在容器里居中,每个组件之间留下5个像素的距离.
FlowLayout(int alinment) //align决定component的位置,其值有FlowLayout.LEFT
FlowLayout(int alignment,int hgap,int vgap) //hgap和vgap分别对应水平和垂直方向的间距,缺省为5单位(unit)
GirdLayout布局管理器:
Grid布局管理器提供了放置component的灵活手段。程序员可以建立一个有多行和多列的布局管理器,然后component就可以按一定的次序(从左到右,从上到下)进行排列。
当Grid布局管理器对应的窗口发生变化时,内部component的相对位置并不变化,只有大小发生变化。
Grid布局管理器总是忽略component倾向的大小(prefered size),它把每个component的大小设置成相同的。
GridLayout() //缺省建立一行的布局,每个component占居一列
GridLayout(int rows, int cols) //建立指定行和列的布局,rows和cols对应行数和列数
GridLayout(int rows, int cols, int hgap, int vgap) //建立指定行列数和间距的布局,hgap和vgap分别对应水平和垂直间距。
当控件数多于或少于构造函数里的行数和列数时,行数时固定的,列数根据情况增减。另,构造函数里的行数和列数能够有一个为零,但是不能都为零。当容器里增加控件时候,容器内将向0的那个方向增长。
如果要组件自定义位置setBounds(x,y,width,height),则布局要使用null。setLayout(null)。
java学习记录(1):layout,布布扣,bubuko.com
原文地址:http://nemomojie.blog.51cto.com/5145862/1411265