1、BorderLayout布局管理器
构造方法:
BorderLayout() //构造一个新的边框布局,组件之间没有间隙。
BorderLayout(int hgap, int vgap) //构造具有组件之间指定间隙的边框布局。 指定垂直和水平间距
字段:
static String AFTER_LAST_LINE //PAGE_END的同义词。
static String AFTER_LINE_ENDS //LINE_END的同义词。
static String BEFORE_FIRST_LINE //PAGE_START的同义词。
static String BEFORE_LINE_BEGINS //LINE_START的同义词。
static String CENTER //中心布局约束(容器中间)。
static String EAST //东部布局约束(容器的右侧)。
static String LINE_END //组件位于布局的行方向的末尾。
static String LINE_START //组件位于布局的行方向的开头。
static String NORTH //北布局约束(容器顶部)。
static String PAGE_END //该组件位于布局内容的最后一行之后。
static String PAGE_START //该组件位于布局内容的第一行之前。
static String SOUTH //南布局约束(容器底部)。
static String WEST //西部布局约束(容器的左侧)。
例子:
import java.applet.Applet;
import java.awt.*;
public class demo09 extends Applet {
@Override
public void init() {
Panel panel = new Panel();
Button north = new Button("north");
Button sourth = new Button("Sourth");
Button east = new Button("east");
Button west = new Button("west");
Button center = new Button("center");
panel.setLayout(new BorderLayout(2,2));
panel.add(north,BorderLayout.NORTH);//指定按钮布局在NORTH
panel.add(sourth,BorderLayout.SOUTH);
panel.add(east,BorderLayout.EAST);
panel.add(west,BorderLayout.WEST);
panel.add(center,BorderLayout.CENTER);
setLayout(new BorderLayout());
add(panel,BorderLayout.CENTER);
}
}
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-i8PfG1Tg-1612105856214)(D:\u(backups)]\note\java GUI\img\21-1.JPG)
2、CardLayout布局管理器
CardLayout跟踪一 个构件的卡片组。
构造方法:
CardLayout() 创建一个大小为零的新卡片布局。
CardLayout(int hgap, int vgap) 创建具有指定水平和垂直间隙的新卡片布局。
CardLayout方法:
方法 | 描述 |
void first(Container) | 显示第一个添加到容器中的构件 |
void last(Container) | 显示最后一个添加到容器中的构件 |
void next(Container) | 显示当前构件后加入到容器中的构件。如果当前是最后一个构件,那么显示第一个构件 |
void previous(Container) | 显示在当前显示构件前加入到容器中的构件。如果当前构件是第一个,那么显示最后一个构件 |
void show(Container,String) | 显示名称和传递的字符串相匹配的构件。如果没有构件匹配,则为空操作 |
例:
import java.applet.Applet;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.lang.reflect.Field;
public class demo09 extends Applet {
public Button one,two,three;
public CardLayout card = new CardLayout();
@Override
public void init() {
final Panel panel = new Panel();
one = new Button("one");
two = new Button("two");
three = new Button("three");
panel.setSize(200,200);
one.setSize(50, 50);
one.setBackground(Color.BLUE);
two.setSize(100, 100);
two.setBackground(Color.yellow);
three.setSize(150, 150);
three.setBackground(Color.BLACK);
panel.setLayout(card);
panel.add(one);
panel.add(two);
panel.add(three);
setLayout(new CardLayout());
add(panel);
ActionListener al = new ActionListener() {
public void actionPerformed(ActionEvent e) {
card.next(panel);//显示下一个添加到panel里面的构件
}
};
one.addActionListener(al);
two.addActionListener(al);
three.addActionListener(al);
}
}
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zEOCN8BE-1612105856216)(D:\u(backups)]\note\java GUI\img\21-3.JPG)
3、FlowLayout布局管理器
FlowLayout仅仅是从左到右、从上到下地布置构件。与BorderL ayout 一样,它是一个基本的布局管理器,可以在许多布置环境下方便地使用。但与BorderLayout 不同的是,FlowLayout不实现LayoutManager2接口,不需要对它布置的构件设置约束条件。
构造方法:
FlowLayout() //构造一个新的 FlowLayout ,其中心对齐和默认的5单位水平和垂直间隙。
FlowLayout(int align) //构造一个具有指定对齐和默认5单位水平和垂直间隙的新 FlowLayout。
FlowLayout(int align, int hgap, int vgap) //创建一个新的流布局管理器,其中包含指示的对齐方式以及指示的水平和垂直间隙。
字段:
static int CENTER //该值表示每行组件应居中。
static int LEADING //此值表示每行组件应对齐到容器方向的前沿,例如,从左到右的方向向左。
static int LEFT //此值表示每行组件应左对齐。
static int RIGHT //此值表示每行组件应右对齐。
static int TRAILING //此值表示每行组件应对齐到容器方向的后缘,例如,从左到右方向向右。
例:
import java.applet.Applet;
import java.awt.*;
public class demo09 extends Applet {
@Override
public void init() {
Panel panel = new Panel();
Button button1 = new Button("1");
Button button2 = new Button("2");
Button button3 = new Button("3");
Button button4 = new Button("4");
Button button5 = new Button("5");
Button button6 = new Button("6");
panel.setLayout(new FlowLayout(FlowLayout.LEFT,10,5));
panel.setSize(50,200);
panel.add(button1);
panel.add(button2);
panel.add(button3);
panel.add(button4);
panel.add(button5);
panel.add(button6);
setLayout(new BorderLayout());
add(panel,BorderLayout.NORTH);
}
}
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dKBYF5QZ-1612105856216)(D:\u(backups)]\note\java GUI\img\21-2.JPG)
4、GridLayout布局管理器
GridLayout 在一个网格中布置构件,客户程序可以在构造GridLayout时或在构造好以后设置构件的间隙和行数列数。当在 applet 中布置电子表格或日历这样的构件时,GridLayout很有用。
构造方法:
GridLayout() //在单行中创建一个网格布局,每个组件的默认值为一列。
GridLayout(int rows, int cols) //创建具有指定行数和列数的网格布局。
GridLayout(int rows, int cols, int hgap, int vgap) //创建具有指定行数和列数的网格布局。
方法:
void setColumns(int cols) //将此布局中的列数设置为指定值。
void setHgap(int hgap) //将组件之间的水平间隙设置为指定值。
void setRows(int rows) //将此布局中的行数设置为指定值。
void setVgap(int vgap) //将组件之间的垂直间距设置为指定值。
例:
import java.applet.Applet;
import java.awt.*;
public class demo09 extends Applet {
@Override
public void init() {
Panel panel = new Panel();
Button button1 = new Button("1");
Button button2 = new Button("2");
Button button3 = new Button("3");
Button button4 = new Button("4");
Button button5 = new Button("5");
Button button6 = new Button("6");
Button button7 = new Button("7");
Button button8 = new Button("8");
Button button9 = new Button("9");
panel.setLayout(new GridLayout(4,5));
panel.add(button1);
panel.add(button2);
panel.add(button3);
panel.add(button4);
panel.add(button5);
panel.add(button6);
panel.add(button7);
panel.add(button8);
panel.add(button9);
setLayout(new BorderLayout());
add(panel,BorderLayout.NORTH);
}
}