GUI编程的布局管理器


继前篇面板对象博文中的内容,在窗体的中,设置了一个布局样式,当时设置的是一个null值

如图:
在这里插入图片描述
那我们今天 看一下这个方法要求传递的具体是什么参数
在这里插入图片描述
继续往下看
在这里插入图片描述
发现他传的是一个接口,接口中大概有五个方法,五个方法都需要传递一个
Container 或者是一个 Component
然后继续点下去发现,Container是继承自Component的,而Component是一个抽象类。

有了以上的大概信息,我们可以继续往下推了。

1. 流式布局 FlowLayout

这里有一个 FlowLayout 对象,这个对象实现的就是 LayoutManager 接口,这个对象的布局方式叫流式布局,他的默认布局方式是居中的
我们来看一下效果图
在这里插入图片描述

我们还可以设置从左往右或者是从右往左
在这里插入图片描述
我们在来看一下从右往左,
在这里插入图片描述

流式布局的设置,就好像写字一样,不管是从左往右写,还是从右往左写,都是一行一行的,写完一行,换到下一行,像个水流。
然后我把代码帖出来

public static void main(String[] args) {

        Frame frame = new Frame("流式布局的练习");

        Button b1 = new Button("button1");
        Button b2 = new Button("button2");

        frame.setVisible(true);
        frame.setBounds(200,200,500,500);
        frame.setBackground(Color.lightGray);

        frame.add(b1);
        frame.add(b2);

        //frame.setLayout(new FlowLayout()); //默认的居中方式
        //frame.setLayout(new FlowLayout(FlowLayout.LEFT)); //从左往右的方式,其实也可以直接添个0,因为它是个常量
        frame.setLayout(new FlowLayout(FlowLayout.RIGHT)); //从左往右的方式,其实也可以直接添个2,因为它是个常量
    }

你会看到现在设置setLayout 的参数不在是null值了。

2. 东南西北中布局 BorderLayout

这个布局方式的样式就顾名思义了,我们贴出代码和效果图来理解一下。

先画个草图, win 键 + R 输入 mspaint 回车
在这里插入图片描述
他大概就长这样,我们来写代码实现一下,看看实际的效果

public static void main(String[] args) {
        Frame frame = new Frame("东西南北中布局测试");

        //先设置好窗体容器
        frame.setVisible(true);
        frame.setBackground(Color.LIGHT_GRAY);
        frame.setBounds(200,200,500,500);

        //准备好容器中填放用到的东东
        Button b1 = new Button("East");
        Button b2 = new Button("West");
        Button b3 = new Button("South");
        Button b4 = new Button("North");
        Button b5 = new Button("Center");

        //将东东们按照指定布局方式放到窗体容器
        frame.add(b1,BorderLayout.EAST); 
        frame.add(b2,BorderLayout.WEST);
        frame.add(b3,BorderLayout.NORTH);
        frame.add(b4,BorderLayout.SOUTH);
        frame.add(b5,BorderLayout.CENTER);
    }

代码写好后,我们来看看执行的效果图。
在这里插入图片描述

3. 表格布局 GridLayout
public static void main(String[] args) {
        //创建窗体
        Frame frame = new Frame("测试表格布局");

        //设置好窗体外观
        frame.setVisible(true);
        frame.setBackground(Color.pink);
        frame.setBounds(150,150,300,300);

        //设置好需要添加到窗体的内容
        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.add(b1);
        frame.add(b2);
        frame.add(b3);
        frame.add(b4);
        frame.add(b5);
        frame.add(b6);

        //最后设置布局方式
        frame.setLayout(new GridLayout(3,2)); //三行两列
    }

look look 效果图
在这里插入图片描述
这就是表格布局的实现效果,最后还有个东东,有个java函数,是用来优化布局效果的,它会自动填充(就比如按钮的尺寸设置好,容器的尺寸设置好,结果布局方式设置完,看到效果并不是这样平铺的,可以用这个方法进行优化,它的作用就是布局选择最优位置确定)
即 frame.pack();

以上就是GUI编程的三种布局管理器

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

兔C

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值