流式布局
1 public class TestFlowLayout {
2 public static void main(String[] args) {
3 Frame frame = new Frame();
4
5 //组件-按钮
6 Button button1 = new Button("button01");
7 Button button2 = new Button("button02");
8 Button button3 = new Button("button03");
9
10 //设置成流式布局
11 frame.setLayout(new FlowLayout());//居中
12 frame.setLayout(new FlowLayout(FlowLayout.LEFT));//居左
13 frame.setLayout(new FlowLayout(FlowLayout.RIGHT));//居右
14
15 frame.setSize(200,200);
16 frame.add(button1);
17 frame.add(button2);
18 frame.add(button3);
19
20 frame.setVisible(true);
21
22 frame.addWindowListener(new WindowAdapter() {
23 @Override
24 public void windowClosing(WindowEvent e) {
25 System.exit(0);
26 }
27 });
28 }
29 }
东西南北中布局
1 //东西南北中布局
2 public class TestBorderLayout {
3 public static void main(String[] args) {
4 Frame frame = new Frame();
5
6 Button east = new Button("east");
7 Button west = new Button("west");
8 Button south = new Button("south");
9 Button north = new Button("north");
10 Button centor = new Button("centor");
11
12 frame.setSize(400,400);
13
14 frame.add(east,BorderLayout.EAST); //东
15 frame.add(west,BorderLayout.WEST); //西
16 frame.add(south,BorderLayout.SOUTH);//南
17 frame.add(north,BorderLayout.NORTH);//北
18 frame.add(centor,BorderLayout.CENTER);//中
19
20 frame.setVisible(true);
21
22 frame.addWindowListener(new WindowAdapter() {
23 @Override
24 public void windowClosing(WindowEvent e) {
25 System.exit(0);
26 }
27 });
28 }
29 }
表格式布局
1 //表格式布局
2 public class TestGridLayout {
3 public static void main(String[] args) {
4 Frame frame = new Frame();
5
6 Button button1 = new Button("button1");
7 Button button2 = new Button("button2");
8 Button button3 = new Button("button3");
9 Button button4 = new Button("button4");
10 Button button5 = new Button("button5");
11 Button button6 = new Button("button6");
12
13 frame.setSize(500,500);
14
15 frame.setLayout(new GridLayout(3,2)); //三行两列
16
17 frame.add(button1);
18 frame.add(button2);
19 frame.add(button3);
20 frame.add(button4);
21 frame.add(button5);
22 frame.add(button6);
23
24 frame.setVisible(true);
25
26 frame.addWindowListener(new WindowAdapter() {
27 @Override
28 public void windowClosing(WindowEvent e) {
29 System.exit(0);
30 }
31 });
32 }
33 }
练习
1 public class TestHomeWork {
2 public static void main(String[] args) {
3
4 //总frame,一分为二,上下两部分
5 Frame frame = new Frame();
6 frame.setSize(500,400);
7 frame.setVisible(true);
8 frame.setLayout(new GridLayout(2,1));
9
10 //上下两个panel面板
11 Panel panel1 = new Panel();
12 panel1.setBackground(new Color(246, 142, 175));
13 panel1.setLayout(new BorderLayout());
14 Panel panel2 = new Panel(new BorderLayout());
15 panel2.setBackground(new Color(71, 196, 214));
16
17 frame.add(panel1);
18 frame.add(panel2);
19
20 //上面的面板
21 panel1.add(new Button("01-east"),BorderLayout.EAST);
22 panel1.add(new Button("01-west"),BorderLayout.WEST);
23
24 Panel panel3 = new Panel();
25 panel3.setLayout(new GridLayout(2,1));
26 panel3.add(new Button("01-01"));
27 panel3.add(new Button("01-02"));
28 panel1.add(panel3,BorderLayout.CENTER);
29
30 //下面的面板
31 panel2.add(new Button("02-east"),BorderLayout.EAST);
32 panel2.add(new Button("02-west"),BorderLayout.WEST);
33
34 Panel panel4 = new Panel(new GridLayout(2,2));
35 for (int i = 0; i <4 ; i++) {
36 panel4.add(new Button("02-"+i));
37 }
38
39 panel2.add(panel4);
40
41 frame.addWindowListener(new WindowAdapter() {
42 @Override
43 public void windowClosing(WindowEvent e) {
44 System.exit(0);
45 }
46 });
47 }
48 }
总结
- frame是一个*窗口
- Panel无法单独显示,必须添加到某个容器种
- 布局管理器
- 流式
- 东西南北中
- 表格
- 大小、定位、背景颜色、可见性