首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >【Java AWT 图形界面编程】LayoutManager 布局管理器 ② ( FlowLayout 流式布局 )

【Java AWT 图形界面编程】LayoutManager 布局管理器 ② ( FlowLayout 流式布局 )

作者头像
韩曙亮
发布2023-03-30 18:44:39
发布2023-03-30 18:44:39
1.2K0
举报

文章目录

一、FlowLayout 流式布局


FlowLayout 流式布局 中 , 组件 按照某个方向进行排列 , 如 :

  • 从左到右
  • 从右到左
  • 从中间到两边

如果 遇到障碍 或者 走到界面边界 ,

就 返回到开始位置 , 在下一行从头继续按照原方向进行排列 ;

如 : 下面的布局就是从左向右的流式布局 , 将 6 个组件放在 FlowLayout 流式布局中 , 1 , 2 , 3 组件放入后 , 再 放入 4 组件 , 发现第 1 排位置不够了 , 遇到障碍 , 此时折 返回左侧 , 另起一行 , 在第 2 排继续从左到右排列 ;

二、FlowLayout 流式布局 API


FlowLayout 构造函数 :

  • FlowLayout() 构造函数 : 使用 默认的 对齐方式 , 默认的 垂直间距 和 水平间距 , 创建流式布局 ;
代码语言:javascript
复制
    /**
     * 构造一个新的<code>FlowLayout</code>,具有居中对齐和
     * 默认水平和垂直间隔为5单元。
     */
    public FlowLayout() {
        this(CENTER, 5, 5);
    }
  • FlowLayout(int align) 构造函数 : 使用 指定的 对齐方式 , 默认的 垂直间距 和 水平间距 , 创建流式布局 ;
代码语言:javascript
复制
    /**
     * 构造一个新的<code>FlowLayout</code>
     * 对齐和默认的5单元水平和垂直差距。
     * 对齐参数的值必须为之一
     * <code>FlowLayout.LEFT</code>, <code>FlowLayout.RIGHT</code>,
     * <code>FlowLayout.CENTER</code>, <code>FlowLayout.LEADING</code>,
     * or <code>FlowLayout.TRAILING</code>.
     * @param align 对齐值
     */
    public FlowLayout(int align) {
        this(align, 5, 5);
    }
  • FlowLayout(int align, int hgap, int vgap) 构造函数 : 使用 指定的 对齐方式 , 指定的 垂直间距 和 水平间距 , 创建流式布局 ;
代码语言:javascript
复制
    /**
     * 使用指定的对齐方式创建一个新的流布局管理器
     * 以及指示的水平和垂直间隙。
     * <p>
     * 对齐参数的值必须为之一
     * <code>FlowLayout.LEFT</code>, <code>FlowLayout.RIGHT</code>,
     * <code>FlowLayout.CENTER</code>, <code>FlowLayout.LEADING</code>,
     * or <code>FlowLayout.TRAILING</code>.
     * @param      align   对齐值
     * @param      hgap    各组件之间的水平间隙
     *                     在分量和
     *                     <code>Container</code>的边界
     * @param      vgap    组件之间的垂直间隙
     *                     在分量和
     *                     <code>Container</code>的边界
     */
    public FlowLayout(int align, int hgap, int vgap) {
        this.hgap = hgap;
        this.vgap = vgap;
        setAlignment(align);
    }

三、FlowLayout 流式布局代码示例


Frame 是 Window 子类 , 是 界面中窗口 , 其 默认的布局管理器是 BorderLayout 布局管理器 ,

通过 调用 Container#setLayout 函数 可以手动修改 容器的布局管理器 ;

1、FlowLayout 流式布局左对齐代码示例及执行效果

代码示例 :

代码语言:javascript
复制
import java.awt.*;

public class HelloAWT {
    public static void main(String[] args) {
        Frame frame = new Frame("AWT 界面编程");

        // 创建流式布局
        // 布局中的组件从左到右进行排列
        // 水平间隔 10 像素, 垂直间隔 10 像素
        FlowLayout flowLayout = new FlowLayout(FlowLayout.LEFT, 10, 10);

        // Frame 容器设置流式布局
        frame.setLayout(flowLayout);
        frame.setBounds(0, 0, 800, 500);

        // 添加多个组件
        for (int i = 0; i < 50; i ++) {
            Button button = new Button("按钮 " + i);
            frame.add(button);
        }

        frame.setVisible(true);
    }
}

执行结果 : 这是左对齐的模式 ;

2、FlowLayout 流式布局居中对齐代码示例及执行效果

居中对齐代码示例 :

代码语言:javascript
复制
import java.awt.*;

public class HelloAWT {
    public static void main(String[] args) {
        Frame frame = new Frame("AWT 界面编程");

        // 创建流式布局
        // 布局中的组件从左到右进行排列
        // 水平间隔 10 像素, 垂直间隔 10 像素
        FlowLayout flowLayout = new FlowLayout(FlowLayout.CENTER, 10, 10);

        // Frame 容器设置流式布局
        frame.setLayout(flowLayout);
        frame.setBounds(0, 0, 800, 500);

        // 添加多个组件
        for (int i = 0; i < 50; i ++) {
            Button button = new Button("按钮 " + i);
            frame.add(button);
        }

        frame.setVisible(true);
    }
}

执行效果 :

2、FlowLayout 流式布局右对齐代码示例及执行效果

代码示例 :

代码语言:javascript
复制
import java.awt.*;

public class HelloAWT {
    public static void main(String[] args) {
        Frame frame = new Frame("AWT 界面编程");

        // 创建流式布局
        // 布局中的组件从左到右进行排列
        // 水平间隔 10 像素, 垂直间隔 10 像素
        FlowLayout flowLayout = new FlowLayout(FlowLayout.RIGHT, 10, 10);

        // Frame 容器设置流式布局
        frame.setLayout(flowLayout);
        frame.setBounds(0, 0, 800, 500);

        // 添加多个组件
        for (int i = 0; i < 50; i ++) {
            Button button = new Button("按钮 " + i);
            frame.add(button);
        }

        frame.setVisible(true);
    }
}

执行效果 :

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-01-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 文章目录
  • 一、FlowLayout 流式布局
  • 二、FlowLayout 流式布局 API
  • 三、FlowLayout 流式布局代码示例
    • 1、FlowLayout 流式布局左对齐代码示例及执行效果
    • 2、FlowLayout 流式布局居中对齐代码示例及执行效果
    • 2、FlowLayout 流式布局右对齐代码示例及执行效果
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档