布局管理器(GUI)

本文介绍了Java中的FlowLayout、BorderLayout和GridLayout三种常用的布局管理器,包括它们的工作原理、对齐选项、代码示例以及各自的优点和适用场景。FlowLayout简单易用,FlowLayout和BorderLayout能保持组件在窗口大小变化时的位置,GridLayout则适用于规则排列的组件。
摘要由CSDN通过智能技术生成

FlowLayout(流式布局)

介绍:

flowLayout是最简单的布局管理器,会按照添加的顺序从左往右放置,当达到边界的时候,自动从下一行开始。可以对这个组件进行按左对齐、居中对齐(默认方式)、右对齐

方法及常量

  • public FlowLayout() 默认是剧居中对齐,水平和垂直之间的间距是5个单位
  • public FlowLayout(int align) 指定组件相对于容器的对齐方式,水平、垂直之间的间距也是默认的5个单位
  • public FlowLayout(int align, int hgap, int vgap) 指定对齐方式,和水平、垂直之间的间距
  • pubic static final int CENTER 居中对齐
  •  pubic static final int LEADING 与容器的开始段对齐的方式一样
  • pubic static final int LEFT 左对齐
  • pubic static final int RIGHT 右对齐

代码演示:

import javax.swing.*;
import java.awt.*;

public class Main {
    public static void creat() {
        //下拉框组件
       JFrame f = new JFrame("流式布局");
       f.setSize(400, 400);
       f.setLocation(300, 300);
       f.setLayout(new FlowLayout(FlowLayout.RIGHT, 3, 3));//按照右边进行对齐
       for(int i = 1; i <= 9; ++ i ) {
           Button b = new Button("button" + i);
           f.add(b);
       }
       f.setDefaultCloseOperation(3);
       f.setVisible(true);
    }
    public static void main(String[] args) {
       SwingUtilities.invokeLater(Main::creat);
    }
}

运行结果:

右对齐:

而且会随着边框的大小变化,位置发生变化

BorderLayout(边界布局管理器)

介绍:

BorderLayout边界布局器,是一个比较复杂的布局方式,将窗体划分成5个区域,分别是东(EAST)、南(SOUTH)、西(WEST)、北(NORTH)、中(CENTER)。

代码演示:

import javax.swing.*;
import java.awt.*;

public class Main {
    public static void creat() {
        //下拉框组件
       JFrame f = new JFrame("流式布局");
       f.setSize(400, 400);
       f.setLocation(300, 300);
       f.setDefaultCloseOperation(3);
       f.setVisible(true);

       f.setLayout(new BorderLayout(5, 5));//横向 纵向的间距均为5像素
        f.setFont(new Font("Helvetica", Font.PLAIN, 14));
        //添加按钮
        f.add("North", new JButton(BorderLayout.NORTH));
        f.add("South", new JButton(BorderLayout.SOUTH));
        f.add("East", new JButton(BorderLayout.EAST));
        f.add("West", new JButton(BorderLayout.WEST));
        f.add("Center", new JButton(BorderLayout.CENTER));
    }
    public static void main(String[] args) {
       SwingUtilities.invokeLater(Main::creat);
    }
}

运行的结果:

BorderLayout的优点和注意事项:

可以限定各区域的边界,当用户改变容器窗口大小时,各个组件的相对位置保持不变,如果不指定添加到哪个区域,会默认添加到中间(CENTER)的区域,并且只能放置一个组件,如果向一个区域添加多个组件,后放入的会覆盖掉先前的组件

GridLayout(网格布局管理器)

介绍:

GridLayout(网格布局管理器)是Java中常用的布局管理器之一,它将容器划分为行和列的网格,组件按照顺序从左到右、从上到下进行排列。

网格布局特点:

  • 每个单元格大小相等,根据容器的大小平均分配
  • 组件按照添加的顺序依次填充网格单元格
  • 当容器大小改变时,网格布局会自动调整组件的大小和位置

创建网格布局对象:

// 创建一个3行2列的网格布局
GridLayout gridLayout = new GridLayout(3, 2);

将网格布局应用到容器:

// 创建一个面板,并设置为网格布局
JPanel panel = new JPanel();
panel.setLayout(gridLayout);

向网格布局中添加组件:

// 向面板中添加按钮
panel.add(new JButton("Button 1"));
panel.add(new JButton("Button 2"));
panel.add(new JButton("Button 3"));
// ...

灵活性:

  • 可以根据需要动态地增加或删除组件
  • 适合用于需要以表格形式排列组件的场景

结论:

总的来说,GridLayout是一种简单且常用的布局管理器,适合于需要将多个组件按照规律排列的情况,例如按钮面板、游戏棋盘等。

  • 13
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

FindYou.

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

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

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

打赏作者

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

抵扣说明:

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

余额充值