JAVA中的布局管理器

布局管理器种类

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);

 

 

练习题:

(1) 下面关于布局管理器说法正确的有(ACD)。 A、布局管理器用来管理组件放置在容器中的位置和大小

 B、不是每个容器都有一个布局管理器

 C、使用布局管理器可以使JAVA生成的图形用户界面具有平台无关性

 D、布局管理器LayoutManager本身是一个接口,通常使用的是实现了该接口的类

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值