布局管理器
- 
流式布局 从左到右
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.setLayout(new FlowLayout());
    //frame.setLayout(new FlowLayout(FlowLayout.LEFT));
    frame.setLayout(new FlowLayout(FlowLayout.RIGHT));
    frame.setSize(500,500);
    //把按钮添加进去
    frame.add(button1);
    frame.add(button2);
    frame.add(button3);
    frame.setVisible(true);
    frame.addWindowListener(new WindowAdapter() {
        @Override
        public void windowClosing(WindowEvent e) {
            System.exit(0);
        }
    });
}
 

public class TestBorderLayout {
    public static void main(String[] args) {
        Frame frame = new Frame("TestBorderLayout");
        Button east = new Button("east");
        Button west = new Button("west");
        Button south = new Button("south");
        Button north = new Button("north");
        Button centre = new Button("centre");
        frame.add(east,BorderLayout.EAST);
        frame.add(west ,BorderLayout.WEST);
        frame.add(south ,BorderLayout.SOUTH);
        frame.add(north ,BorderLayout.NORTH);
        frame.add(centre,BorderLayout.CENTER);
        frame.setSize(500,500);
        frame.setVisible(true);
        frame.addWindowListener(new WindowAdapter() {
            @Override
            public void windowClosing(WindowEvent e) {
                System.exit(0);
            }
        });
    }
}

public class TestGridLayout {
    public static void main(String[] args) {
        Frame frame = new Frame("TestBorderLayout");
        Button btn1 = new Button("btn1");
        Button btn2 = new Button("btn2");
        Button btn3 = new Button("btn3");
        Button btn4 = new Button("btn4");
        Button btn5 = new Button("btn5");
        Button btn6 = new Button("btn6");
        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函數
        frame.setVisible(true);
        frame.addWindowListener(new WindowAdapter() {
            @Override
            public void windowClosing(WindowEvent e) {
                System.exit(0);
            }
        });
    }
}

public static void main(String[] args) {
    Frame frame = new Frame("TestLayoutExercise");
    frame.setVisible(true);
    frame.setLocation(200,300);
    frame.setSize(400,400);
    frame.setBackground(Color.CYAN);
    frame.setLayout(new GridLayout(2,1));
    //4个面板,上下一个,上面:左button、面板、右button
    Panel panel = new Panel(new BorderLayout());
    Panel pane2 = new Panel(new GridLayout(2,1));
    Panel pane3 = new Panel(new BorderLayout());
    Panel pane4 = new Panel(new GridLayout(2,2));
    panel.add(new Button("bt1"),BorderLayout.EAST);
    panel.add(new Button("bt2"),BorderLayout.WEST);
    pane2.add(new Button("bt3"));
    pane2.add(new Button("bt4"));
    panel.add(pane2,BorderLayout.CENTER);
    //下面的面板
    pane3.add(new Button("bt5"),BorderLayout.EAST);
    pane3.add(new Button("bt6"),BorderLayout.WEST);
    pane4.add(new Button("bt7"));
    pane4.add(new Button("bt8"));
    pane4.add(new Button("bt9"));
    pane4.add(new Button("bt10"));
    pane3.add(pane4,BorderLayout.CENTER);
    frame.add(panel);
    frame.add(pane3);
    frame.addWindowListener(new WindowAdapter() {
        @Override
        public void windowClosing(WindowEvent e) {
            System.exit(0);
        }
    });
}

总结
- Frame是一个顶级窗口
 
- Panel无法单独显示,必须添加到某个容器中
 
- 布局管理器
- 流失
 
- 东西南北中
 
- 表格
 
 
- 标题,大小,定位,背景颜色,可见性,监听