Java中布局管理器

来源:互联网 发布:java web购物车的实现 编辑:程序博客网 时间:2024/05/17 23:51

======================================================
注:本文源代码点此下载
======================================================

布局管理器种类

flowlayout: 组件在一行中从左至右水平排列,排满后折行,它是panel、applet的默认布局管理器。

borderlayout:北、南、东、西、中,它是window、frame、dialog的默认布局管理器。

gridlayout:以行和列的网格形式安排组件

gridbaglayout:更复杂、功能更强的网格布局

cardlayout:每一个组件作为一个卡片,容器仅显示多个卡片中的某一个确定容器布局

 

1.容器的组件布局

(1)布局管理器(layout manager)

负责确定组件在容器中的位置和大小。

调用容器的setlayout(布局管理器对象) 方法,为容器指定某种布局管理器的一个对象。

当容器需要定位组件和确定组件大小时,就会给布局管理器对象发消息,让它完成该项工作。

(2)直接管理组件

调用容器的 setlayout(null) 方法,关闭布局管理器。

调用每一个组件的setlocation()方法决定组件位置。

调用每一个组件的setsize()方法决定其大小。

(3)直接管理组件将失去平台无关性。

 

2.flowlayout布局管理器

构造函数:

flowlayout() ;

flowlayout(int align, int hgap, int vgap);

align :对齐方式:left  center  right

hgap :组件水平间距 (象素)

vgap :组件垂直间距

无参数的构造函数创建的flowlayout对象,其对齐方式为center居中方式,组件间的横纵间距都为5个像素

frame f = new frame("flowlayout");

f.setsize(400,300);  //不起作用

f.setbackground(color.gray);

f.setlayout(new flowlayout(flowlayout.left,10,20));

b1 = new button("button1");

b2 = new button("button2");

b3 = new button("button3");

f.add(b1);

f.add(b2);

f.add(b3);

f.setvisible(true);

f.pack();

 

3.borderlayout布局管理器

setlayout(new borderlayout() )

add(b1,borderlayout.north); //东、西、南、北中

当容器大小改变,组件相对位置不会改变

setlayout(new borderlayout() )

add(b1,borderlayout.north);

当容器大小改变,组件相对位置不会改变

frame f = new frame("borderlayout");

f.setsize(200,200);

b1 = new button("button1");

b5 = new button("button5");

f.add(b1,borderlayout.north);

f.add(b2,borderlayout.south);

f.add(b3,borderlayout.west);

f.add(b4,borderlayout.east);

f.add(b5,borderlayout.center);

f.setvisible(true);

 

4.gridlayout布局管理器

创建gridlayout对象作为布局编辑器,指定划分网格的行数和列数(网格大小一样)。

setlayout(new gridlayout(行数, 列数));

setlayout(new gridlayout(行数, 列数,行间隔,列间隔));

调用容器的方法add()将组件加入容器,组件填入容器的顺序将按照第一行第一个、第一行第二个、……

每个网格中都必须填入组件,如果希望某个网格为空白,可以为它加入一个空的标签:

add (new label());

frame f = new frame("gridlayout");

f.setlayout(new gridlayout(2,3));

f.setsize(200,100);

f.setbackground(color.gray);

b1 = new button("1");

b6 = new button("6");

f.add(b1);

f.setvisible(true);


======================================================
在最后,我邀请大家参加新浪APP,就是新浪免费送大家的一个空间,支持PHP+MySql,免费二级域名,免费域名绑定 这个是我邀请的地址,您通过这个链接注册即为我的好友,并获赠云豆500个,价值5元哦!短网址是http://t.cn/SXOiLh我创建的小站每天访客已经达到2000+了,每天挂广告赚50+元哦,呵呵,饭钱不愁了,\(^o^)/
原创粉丝点击