Java学习-GUI编程-3种布局管理

本文介绍了Java GUI编程中的流式布局、包围式布局和表格布局,详细讲解了各自的特性,并提到这三种布局可以相互嵌套,以实现更复杂的界面设计。
摘要由CSDN通过智能技术生成

Java学习-GUI编程-3种布局管理

  • 流式布局
  • 包围式布局
  • 表格布局
流式布局
public class TestFlowLayout {
    public static void main(String[] args) {
        Frame frame = new Frame();
        Button b1 = new Button("I'm a button");
        Button b2 = new Button("I'm a button too");
        Button b3 = new Button("I'm button three");

        //设置为流式布局
        frame.setLayout(new FlowLayout());
        frame.setSize(200,200);
        frame.setVisible(true);
        frame.add(b1);
        frame.add(b2);
        frame.add(b3);
    }
}

在这里插入图片描述
左对齐:
在这里插入图片描述

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

在这里插入图片描述

包围式布局
public class TestBorderLayout {
    public static void main(String[] args) {
        Frame frame = new Frame("TestBorderLayout");
        Button e = new Button("East");
        Button w = new Button("West");
        Button s = new Button("South");
        Button n = new Button("North");
        Button c = new Button("Center");
        frame.add(e,BorderLayout.EAST);
        frame.add(w,BorderLayout.WEST);
        frame.add(s,BorderLayout.SOUTH);
        frame.add(n,BorderLayout.NORTH);
        frame.add(c,BorderLayout.CENTER);
        frame.setVisible(true);
        frame.setBounds(200,200,400,400);
    }
}

在这里插入图片描述

表格布局
public class TestFridLayout {
    public static void main(String[] args) {
        Frame frame = new Frame("TestGridLayout");
        Button b1 = new Button("b1");
        Button b2 = new Button("b2");
        Button b3 = new Button("b3");
        Button b4 = new Button("b4");
        Button b5 = new Button("b5");
        Button b6 = new Button("b6");
        frame.setLayout(new GridLayout(3,2));
        frame.add(b1);
        frame.add(b2);
        frame.add(b3);
        frame.add(b4);
        frame.add(b5);
        frame.add(b6);
        frame.setVisible(true);
        frame.setBounds(200,200,400,400);
    }
}

在这里插入图片描述

三种布局可以嵌套
public class TestLayout {
    public static void main(String[] args) {
        Frame frame = new Frame("嵌套布局");
        frame.setVisible(true);
        frame.setBounds(200,200,400,400);
        frame.setLayout(new GridLayout(2,1));
        Panel p1 = new Panel(new BorderLayout());
        Panel p2 = new Panel(new BorderLayout());
        Panel p3 = new Panel(new GridLayout(3,1));
        Panel p4 = new Panel(new BorderLayout());

        p1.add(new Button("east"),BorderLayout.EAST);
        p1.add(new Button("west"),BorderLayout.WEST);
        p3.add(new Button("up"));
        p3.add(new Button("center"));
        p3.add(new Button("down"));
        p1.add(p3,BorderLayout.CENTER);
        p2.add(new Button("left"),BorderLayout.WEST);
        p2.add(new Button("right"),BorderLayout.EAST);
        p4.add(new Button("east"),BorderLayout.EAST);
        p4.add(new Button("west"),BorderLayout.WEST);
        p4.add(new Button("south"),BorderLayout.SOUTH);
        p4.add(new Button("north"),BorderLayout.NORTH);
        p4.add(new Button("center"),BorderLayout.CENTER);
        p2.add(p4,BorderLayout.CENTER);
        frame.add(p1);
        frame.add(p2);

        frame.addWindowListener(new WindowAdapter() {
            @Override
            public void windowClosing(WindowEvent e) {
                System.exit(0);
            }
        });
    }
}

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值