1、 布局管理器:java语言中,提供了布局管理器类的对象可以管理Component在Container中的布局,不必直接设置Component位置和大小、每个Container都有一个布局管理器对象,当容器需要对某个组件进行定位或判断其大小尺寸时,就会调用其对应的布局管理器,调用Container的setLayout方法改变其布局管理器对象
2、 Awt提供了5种布局管理器类:FlowLayout、BorderLayout、GridLayout、CardLayout、GridBagLayout
3、 FlowLayout布局管理器:Panel类的默认布局管理器、FlowLayout布局管理器对组件逐行定位,行内从左到右,一行排满后换行、不改变组件的大小,按组件原有尺寸显示组件,可设置不同的组件间距,行距以及对齐方式、FlowLayout布局管理器默认的对齐方式是居中,构造方法(TestFlowLayout2.java)
4、 BorderLayout布局管理器:是Frame类的默认布局管理器、BorderLayout将整个容器的布局划分成东西南北中五个区域,组件只能被添加到指定的区域、如不指定组建的加入部位,则默认加入到center区、每个区域只能加入一个组件,如加入多个,则先前加入的会被覆盖
5、 BorderLayout型布局管理器尺寸缩放原则:北南两个区域在水平方向缩放、东西两个区域在垂直方向缩放、中部可在两个方向上缩放(TestBorderLayout.java)
6、 GridLayout布局管理器:GridLayout型布局管理器将空间划分成规则的矩形网络,每个单元格区域大小相等,组件被添加到每个单元格中,先从左到右添满一行后换行,再从上到下、在GridLayout构造方法中指定分割的行数和列数:GridLayout(3, 4) (TestGridLayout.java)
7、 布局管理器总结:Frame是一个顶级窗口,Frame的缺省布局管理器为BorderLayout、Panel无法单独显示,必须添加到某个容器中,Panel的缺省布局管理器为FlowLayout、使用布局管理器时,布局管理器负责各个组件的大小和位置,因此用户无法再这种情况下设置组件大小和位置属性,如果试图使用java语言提供的setLocation(),setSize(),setBounds()等方法,则都会被布局管理器覆盖、如果用户确实需要亲自设置组件大小或位置,则应取消该容器的布局管理器,方法为:setLayout(null)
2、 Awt提供了5种布局管理器类:FlowLayout、BorderLayout、GridLayout、CardLayout、GridBagLayout
3、 FlowLayout布局管理器:Panel类的默认布局管理器、FlowLayout布局管理器对组件逐行定位,行内从左到右,一行排满后换行、不改变组件的大小,按组件原有尺寸显示组件,可设置不同的组件间距,行距以及对齐方式、FlowLayout布局管理器默认的对齐方式是居中,构造方法(TestFlowLayout2.java)
4、 BorderLayout布局管理器:是Frame类的默认布局管理器、BorderLayout将整个容器的布局划分成东西南北中五个区域,组件只能被添加到指定的区域、如不指定组建的加入部位,则默认加入到center区、每个区域只能加入一个组件,如加入多个,则先前加入的会被覆盖
5、 BorderLayout型布局管理器尺寸缩放原则:北南两个区域在水平方向缩放、东西两个区域在垂直方向缩放、中部可在两个方向上缩放(TestBorderLayout.java)
6、 GridLayout布局管理器:GridLayout型布局管理器将空间划分成规则的矩形网络,每个单元格区域大小相等,组件被添加到每个单元格中,先从左到右添满一行后换行,再从上到下、在GridLayout构造方法中指定分割的行数和列数:GridLayout(3, 4) (TestGridLayout.java)
7、 布局管理器总结:Frame是一个顶级窗口,Frame的缺省布局管理器为BorderLayout、Panel无法单独显示,必须添加到某个容器中,Panel的缺省布局管理器为FlowLayout、使用布局管理器时,布局管理器负责各个组件的大小和位置,因此用户无法再这种情况下设置组件大小和位置属性,如果试图使用java语言提供的setLocation(),setSize(),setBounds()等方法,则都会被布局管理器覆盖、如果用户确实需要亲自设置组件大小或位置,则应取消该容器的布局管理器,方法为:setLayout(null)
/* 范例名称:FlowLayout 用法举例
* 源文件名称:TestFlowLayout.java
* 要 点:
* 1. 布局管理器的概念和作用
* 2. FlowLayout的性质及用法
*/
import java.awt.*;
public class TestFlowLayout2 {
public static void main(String args[]) {
Frame f = new Frame("Java Frame");
FlowLayout l =
new FlowLayout(FlowLayout.CENTER, 20, 40);//指定按钮排列方式
f.setLayout(l);
f.setLocation(300,400);
f.setSize(300,200);
f.setBackground(new Color(204,204,255));
for(int i = 1; i<=7; i++){
f.add(new Button("BUTTON"));
}
f.setVisible(true);
}
}
/* 范例名称:BorderLayout应用举例
* 源文件名称:TestBorderLayout.java
* 要 点:FlowLayout布局管理器的性质及用法
*/
import java.awt.*;
public class TestBorderLayout {
public static void main(String args[]) {
Frame f;
f = new Frame("Border Layout");
Button bn = new Button("BN");
Button bs = new Button("BS");
Button bw = new Button("BW");
Button be = new Button("BE");
Button bc = new Button("BC");
f.add(bn, "North");//使用字符串
f.add(bs, "South");
f.add(bw, "West");
f.add(be, "East");
f.add(bc, "Center");
// 也可使用下述语句
/*
f.add(bn, BorderLayout.NORTH); //使用系统常量,是int类型
f.add(bs, BorderLayout.SOUTH);
f.add(bw, BorderLayout.WEST);
f.add(be, BorderLayout.EAST);
f.add(bc, BorderLayout.CENTER);
*/
f.setSize(200,200);
f.setVisible(true);
}
}
/* 范例名称:GridLayout应用举例
* 源文件名称:TestGridLayout
* 要 点:GridLayout布局管理器的性质及用法
*/
import java.awt.*;
public class TestGridLayout {
public static void main(String args[]) {
Frame f = new Frame("GridLayout Example");
Button b1 = new Button("b1");
Button b2 = new Button("b2");
Button b3 = new Button("b3");
Button b4 = new Button("b4");
Button b5 = new Button("b5");
Button b6 = new Button("b6");
f.setLayout (new GridLayout(3,2)); //设置格子的行列数
f.add(b1);
f.add(b2);
f.add(b3);
f.add(b4);
f.add(b5);
f.add(b6);
f.pack(); //自动显示界面大小
f.setVisible(true);
}
}
本文详细介绍了Java中五种布局管理器:FlowLayout、BorderLayout、GridLayout、CardLayout和GridBagLayout的特点与用法,并通过具体实例展示了如何使用这些布局管理器来组织组件。
1081

被折叠的 条评论
为什么被折叠?



