1.流式布局
public class TextFlowLayout {
public static void main(String[] args) {
Frame frame = new Frame();
//组件-按钮
Button button1 = new Button("button1");
Button button2 = new Button("button2");
Button button3 = new Button("button3");
frame.setVisible(true);//设置可见性
frame.setSize(200,200);//设置初始大小
frame.setLocation(200,200);//设置初始位置
//设置流式布局
//这里选择CENTER三个按钮居中
frame.setLayout(new FlowLayout(FlowLayout.CENTER));
//把按钮添加上去
frame.add(button1);
frame.add(button2);
frame.add(button3);
//监听事件 监听窗口关闭事件 System.exit(0);
//适配器模式
frame.addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
}
}
运行结果
2.东西南北中布局
public class BorderLayout {
public static void main(String[] args) {
Frame frame = new Frame();
Button east = new Button("east");
Button west = new Button("west");
Button south = new Button("south");
Button north = new Button("north");
Button center = new Button("center");
frame.setLocation(200,200);
frame.setVisible(true);
frame.setSize(200,200);
frame.add(east, java.awt.BorderLayout.EAST);
frame.add(west, java.awt.BorderLayout.WEST);
frame.add(south, java.awt.BorderLayout.SOUTH);
frame.add(north, java.awt.BorderLayout.NORTH);
frame.add(center, java.awt.BorderLayout.CENTER);
//监听事件 监听窗口关闭事件 System.exit(0);
//适配器模式
frame.addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
}
}
运行结果:
3.表格布局
public class GirdLayout {
public static void main(String[] args) {
Frame frame = new Frame();
Button btn1 = new Button("btn1");
Button btn2 = new Button("btn2");
Button btn3 = new Button("btn3");
Button btn4 = new Button("btn3");
Button btn5 = new Button("btn5");
Button btn6 = new Button("btn6");
frame.setSize(200,200);
frame.setVisible(true);
frame.setLayout(new GridLayout(3,2));
frame.add(btn1);
frame.add(btn2);
frame.add(btn3);
frame.add(btn4);
frame.add(btn5);
frame.add(btn6);
frame.pack();//java 自动排序
//监听事件 监听窗口关闭事件 System.exit(0);
//适配器模式
frame.addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
}
}
运行结果:
4.三种布局的嵌套使用
当需要布局一个不规则的的窗口的时候,需要用到布局的嵌套使用
//建立四个面板,采用嵌套
public class Text1 {
public static void main(String[] args) {
Frame frame = new Frame();
//布局
frame.setLayout(new GridLayout(2,1));
//frame窗口基本功能
frame.setLocation(200,200);
frame.setSize(300,300);
frame.setVisible(true);
frame.setBackground(Color.BLUE);
//四个面板
Panel p1 = new Panel(new BorderLayout());
Panel p2 = new Panel(new GridLayout(2,1));
Panel p3 = new Panel(new BorderLayout());
Panel p4 = new Panel(new GridLayout(2,2));
//最外层为两行一列的窗口
p1.add(new Button("btn1"),BorderLayout.EAST);
p1.add(new Button("btn4"), BorderLayout.WEST);
//Grid表格式会自动排序
p2.add(new Button("btn2"));
p2.add(new Button("btn3"));
p1.add(p2, BorderLayout.CENTER);
p3.add(new Button("btn5"), BorderLayout.EAST);
p3.add(new Button("btn10"), BorderLayout.WEST);
p4.add(new Button("btn6"));
p4.add(new Button("btn7"));
p4.add(new Button("btn8"));
p4.add(new Button("btn9"));
p3.add(p4, BorderLayout.CENTER);
frame.add(p1);
frame.add(p3);
//监听事件 监听窗口关闭事件 System.exit(0);
//适配器模式
frame.addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
}
}
运行结果