吴志勇的博客 吴志勇的博客
  • h5

    • HTML5&CSS3
  • scss

    • css预处理语言
  • JavaScript

    • JavaScript教程
    • Ajax
    • ES6教程
    • NodeJS
    • Typescript
  • 框架

    • Jquery
    • VUE
    • React
  • Swing专题
  • java基础
  • javaweb
  • 框架
  • 数据库
  • netty
  • 设计模式
  • 微服务及架构
  • 云原生
  • maven
  • 单元测试
工具
我的
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

吴志勇

......
  • h5

    • HTML5&CSS3
  • scss

    • css预处理语言
  • JavaScript

    • JavaScript教程
    • Ajax
    • ES6教程
    • NodeJS
    • Typescript
  • 框架

    • Jquery
    • VUE
    • React
  • Swing专题
  • java基础
  • javaweb
  • 框架
  • 数据库
  • netty
  • 设计模式
  • 微服务及架构
  • 云原生
  • maven
  • 单元测试
工具
我的
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • Swing专题

    • swing图形化界面简介

    • JavaSwing布局管理器

      • FlowLayout(流式布局)
      • GridLayout(网格布局)
      • GridBagLayout(网格袋布局)
      • BoxLayout(箱式布局)
      • GroupLayout(分组布局)
      • CardLayout(卡片布局)
      • BorderLayout(边界布局)
      • SpringLayout(弹性布局)
      • null(绝对布局)
    • JavaSwing基本组件

    • JavaSwing面板组件

    • JavaSwing其他组件

    • JavaSwing相关特性

    • 扩展:JavaAWTSwing其他相关

  • java基础

  • javaweb

  • 框架

  • Maven
  • 单元测试
  • 动态代理
  • 数据库

  • netty

  • 设计模式

  • 微服务及架构

  • 云原生

  • Velocity模板引擎
  • 后端
  • Swing专题
  • JavaSwing布局管理器
wuzhiyong
2024-09-18

FlowLayout(流式布局)

# 1. 概述

官方JavaDocsApi: java.awt.FlowLayout (opens new window)

FlowLayout,流式布局管理器。按水平方向依次排列放置组件,排满一行,换下一行继续排列。排列方向(左到右 或 右到左)取决于容器的componentOrientation属性(该属性属于Component),它可能的值如下:

ComponentOrientation.LEFT_TO_RIGHT(默认)
ComponentOrientation.RIGHT_TO_LEFT
1
2

同一行(水平方向)的组件的对齐方式由 FlowLayout 的align属性确定,它可能的值如下:

FlowLayout.LEFT : 左对齐
FlowLayout.CENTER : 居中对齐(默认)
FlowLayout.RIGHT : 右对齐
FlowLayout.LEADING : 与容器方向的开始边对齐,例如,对于从左到右的方向,则与左边对齐
FlowLayout.TRAILING : 与容器方向的结束边对齐,例如,对于从左到右的方向,则与右边对齐。
1
2
3
4
5

FlowLayout的构造方法:

// 默认 居中对齐的,水平和垂直间隙是 5 个单位
FlowLayout()

// 指定对齐方式,默认的水平和垂直间隙是 5 个单位
FlowLayout(int align)

// 指定对其方式,水平 和 竖直 间隙
FlowLayout(int align, int hgap, int vgap)
1
2
3
4
5
6
7
8

# 2.代码实例:

package com.xiets.swing;

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

public class Main {

    public static void main(String[] args) {
        JFrame jf = new JFrame("测试窗口");
        jf.setSize(200, 250);
        jf.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        jf.setLocationRelativeTo(null);

        // 创建内容面板,指定使用 流式布局
        JPanel panel = new JPanel(new FlowLayout());

        JButton btn01 = new JButton("按钮01");
        JButton btn02 = new JButton("按钮02");
        JButton btn03 = new JButton("按钮03");
        JButton btn04 = new JButton("按钮04");
        JButton btn05 = new JButton("按钮05");

        panel.add(btn01);
        panel.add(btn02);
        panel.add(btn03);
        panel.add(btn04);
        panel.add(btn05);

        jf.setContentPane(panel);
        jf.setVisible(true);        // PS: 最后再设置为可显示(绘制), 所有添加的组件才会显示
    }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32

结果展示:

#swing
上次更新: 2024-09-19 12:17:39

← swing图形化界面简介 GridLayout(网格布局)→

Copyright © 2020-2025 wuzhiyong
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式