java-GUI-布局

GUI-布局

流式布局

​ 流式布局:FlowLayout

public static void main(String[] args) {
        // 定义窗口
        Frame frame = new Frame();
        // 设置窗口大小,坐标
        frame.setBounds(200, 200, 400, 400);
        // 设置窗口颜色
        frame.setBackground(Color.BLACK);

        // 设置流式布局
        FlowLayout flowLayout = new FlowLayout();
        // 窗口设置流式布局
        frame.setLayout(flowLayout);
        // 设置按钮
        Button btn_1 = new Button("btn_1");
        Button btn_2 = new Button("btn_2");
        // 按钮放到布局中
        frame.add(btn_1);
        frame.add(btn_2);

        // 关闭窗口
        frame.addWindowListener(new WindowAdapter() {
            @Override
            public void windowClosing(WindowEvent e) {
                // 终止程序
                System.exit(0);
            }
        });
        // 设置窗口显示
        frame.setVisible(true);
    }

边框布局

​ 边框布局:BorderLayout,有东西南北中几个方位

public static void main(String[] args) {
        // 定义窗口
        Frame frame = new Frame();
        // 设置窗口大小,坐标
        frame.setBounds(200, 200, 400, 400);
        // 设置窗口颜色
        frame.setBackground(Color.BLACK);

        // 设置边框布局
        BorderLayout borderLayout = new BorderLayout();
        // 窗口设置边框布局
        frame.setLayout(borderLayout);
        // 设置按钮
        Button btn_1 = new Button("EAST");
        Button btn_2 = new Button("WEST");
        Button btn_3 = new Button("NORTH");
        Button btn_4 = new Button("SOUTH");
        Button btn_5 = new Button("CENTER");
        // 按钮放置边框布局中
        frame.add(btn_1, BorderLayout.EAST);
        frame.add(btn_2, BorderLayout.WEST);
        frame.add(btn_3, BorderLayout.NORTH);
        frame.add(btn_4, BorderLayout.SOUTH);
        frame.add(btn_5, BorderLayout.CENTER);


        // 关闭窗口
        frame.addWindowListener(new WindowAdapter() {
            @Override
            public void windowClosing(WindowEvent e) {
                // 终止程序
                System.exit(0);
            }
        });
        // 设置窗口显示
        frame.setVisible(true);
    }

表格布局

​ 表格布局:GridLayout

public static void main(String[] args) {
        // 定义窗口
        Frame frame = new Frame();
        // 设置窗口大小,坐标
        frame.setBounds(200, 200, 400, 400);
        // 设置窗口颜色
        frame.setBackground(Color.BLACK);

        // 设置表格布局-设置几行几列
        GridLayout layout = new GridLayout(2, 2);
        // 窗口设置为表格布局
        frame.setLayout(layout);
        // 设置按钮
        Button btn_1 = new Button("btn_1");
        Button btn_2 = new Button("btn_2");
        Button btn_3 = new Button("btn_3");
        Button btn_4 = new Button("btn_4");
        // 按钮放到布局中
        frame.add(btn_1);
        frame.add(btn_2);
        frame.add(btn_3);
        frame.add(btn_4);

        // 关闭窗口
        frame.addWindowListener(new WindowAdapter() {
            @Override
            public void windowClosing(WindowEvent e) {
                // 终止程序
                System.exit(0);
            }
        });
        // 设置窗口显示
        frame.setVisible(true);
    }

窗口使用多个布局

​ 窗口使用多个布局要用到面板Panel

例子:

java-GUI-布局

public static void main(String[] args) {
        // 定义窗口
        Frame frame = new Frame();
        // 设置窗口大小,坐标
        frame.setBounds(200, 200, 400, 400);
        // 设置窗口颜色
        frame.setBackground(Color.BLACK);

        // 设置窗口大体为两行一列
        frame.setLayout(new GridLayout(2, 1));
        // 放置两个面板
        Panel panel_1 = new Panel();
        Panel panel_2 = new Panel();
        frame.add(panel_1);
        frame.add(panel_2);

        // 第一个面板布局为边框布局,两边为按钮,中间为面板
        // 面板设置布局
        panel_1.setLayout(new BorderLayout());
        // 两边设置为按钮
        panel_1.add(new Button(), BorderLayout.WEST);
        panel_1.add(new Button(), BorderLayout.EAST);
        // 中间为面板,面板布局为两行一列的表格
        // 设置面板,放到中间位置
        Panel panel_3 = new Panel();
        panel_1.add(panel_3, BorderLayout.CENTER);
        // 设置面板布局为两行一列的表格布局
        panel_3.setLayout(new GridLayout(2, 1));
        panel_3.add(new Button());
        panel_3.add(new Button());

        // 第二个面板布局为边框布局,两边为按钮,中间为面板
        // 面板设置布局
        panel_2.setLayout(new BorderLayout());
        // 两边设置为按钮
        panel_2.add(new Button(), BorderLayout.EAST);
        panel_2.add(new Button(), BorderLayout.WEST);
        // 中间为面板,面板布局为两行两列的表格
        // 设置面板,放到中间位置
        Panel panel_4 = new Panel();
        panel_2.add(panel_4, BorderLayout.CENTER);
        // 设置面板布局为两行两列的表格布局
        panel_4.setLayout(new GridLayout(2, 2));
        panel_4.add(new Button());
        panel_4.add(new Button());
        panel_4.add(new Button());
        panel_4.add(new Button());


        // 关闭窗口
        frame.addWindowListener(new WindowAdapter() {
            @Override
            public void windowClosing(WindowEvent e) {
                // 终止程序
                System.exit(0);
            }
        });
        // 设置窗口显示
        frame.setVisible(true);
        // 设置窗口自适应
        frame.pack();
    }
上一篇:AWT: Frame和Panel


下一篇:解决eayui tabs title重名的问题