GUI容器之布局管理器

布局管理器

布局管理器:frame.setLayout();

默认值为new flowLayout()

  • 流式布局

frame.setLayout(new FlowLayout(FlowLayout.RIGHT));

public class 流式布局 {
    public static void main(String[] args) {
        Button btn1 = new Button("btn1");
        Button btn2 = new Button("btn2");
        Button btn3 = new Button("btn3");
        Button btn4 = new Button("btn4");

        btn1.setSize(10,10);
        btn2.setSize(10,10);
        btn3.setSize(10,10);
        btn4.setSize(10,10);

        Frame frame = new Frame();
        //设置流式布局
        frame.setLayout(new FlowLayout(FlowLayout.RIGHT));

        frame.setBounds(100,100,600,400);

        frame.add(btn1);
        frame.add(btn2);
        frame.add(btn3);
        frame.add(btn4);
        frame.setVisible(true);

    }
}
  • 东西南北中

    frame.setLayout(new BorderLayout());

    public class 东西南北中 {
        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("btn4");
            Button btn5 = new Button("btn5");
    
            frame.setBounds(100,100,500,400);
            //设置布局管理器
            frame.add(btn1,BorderLayout.EAST);
            frame.add(btn2,BorderLayout.WEST);
            frame.add(btn3,BorderLayout.SOUTH);
            frame.add(btn4,BorderLayout.NORTH);
            frame.add(btn5,BorderLayout.CENTER);
            frame.setVisible(true);
        }
    }
    
  • 表格布局

frame.setLayout(new GridLayout(3, 2));//行列

public class 表格布局 {
    public static void main(String[] args) {
        Frame frame = new Frame();
        frame.setBounds(100, 100, 200, 200);

        //设置布局管理器
        frame.setLayout(new GridLayout(3, 2));//行列

        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.add(btn1);
        frame.add(btn2);
        frame.add(btn3);
        frame.add(btn4);
        frame.add(btn5);
        frame.add(btn6);
        //frame.pack();//自动设置大小
        frame.setVisible(true);//可视化
    }
}

综合练习

布局管理器的综合应用

  • 总结

  1. Frame:顶级窗口
  2. Panel:面板,不能独立存在
  3. 布局管理器
    1. 流式布局 flowLayout
    2. 东西南北中 borderLayout
    3. 表格布局 gridLayout
posted @ 2020-03-27 22:41  shimmernight  阅读(198)  评论(0编辑  收藏  举报