LayoutManager布局管理器

之前,我们介绍了Component中有一个方法 setBounds() 可以设置当前容器的位置和大小,但是我们需要明确一件事,如果我们手动的为组件设置位置和大小的话,就会造成程序的不通用性,例如:

Label label = new Label("你好,世界");

创建了一个lable组件,很多情况下,我们需要让lable组件的宽高和“你好,世界”这个字符串自身的宽高一致,这种大小称为最佳大小。由于操作系统存在差异,例如在windows上,我们要达到这样的效果,需要把该Lable组件的宽和高分别设置为100px,20px,但是在Linux操作系统上,可能需要把Lable组件的宽和高分别设置为120px,24px,才能达到同样的效果。

如果要让我么的程序在不同的操作系统下,都有相同的使用体验,那么手动设置组件的位置和大小,无疑是一种灾难,因为有太多的组件,需要分别设置不同操作系统下的大小和位置。为了解决这个问题,Java提供了LayoutManager布局管理器,可以根据运行平台来自动调整组件大小,程序员不用再手动设置组件的大小和位置了,只需要为容器选择合适的布局管理器即可。

FlowLayout

​ 在 FlowLayout 布局管理器 中,组件像水流一样向某方向流动 (排列) ,遇到障碍(边界)就折回,重头开始排列 。在默认情况下, FlowLayout 布局管理器从左向右排列所有组件,遇到边界就会折回下一行重新开始。

构造方法 方法功能
FlowLayout() 使用默认 的对齐方式及默认的垂直间距、水平间距创建 FlowLayout 布局管理器。
FlowLayout(int align) 使用指定的对齐方式及默认的垂直间距、水平间距创建 FlowLayout 布局管理器。
FlowLayout(int align,int hgap,int vgap) 使用指定的对齐方式及指定的垂直问距、水平间距创建FlowLayout 布局管理器。

FlowLayout 中组件的排列方向(从左向右、从右向左、从中间向两边等) , 该参数应该使用FlowLayout类的静态常量 : FlowLayout. LEFT 、 FlowLayout. CENTER 、 FlowLayout. RIGHT ,默认是左对齐。

FlowLayout 中组件中间距通过整数设置,单位是像素,默认是5个像素。

代码演示:

import java.awt.*;public class FlowLayoutDemo {public static void main(String[] args) {//1.创建Frame对象Frame frame = new Frame("这里测试FlowLayout");//2.修改Frame容器的布局管理器为FlowLayoutframe.setLayout(new FlowLayout(FlowLayout.LEFT,20,20));//3.往Frame中添加100个buttonfor (int i = 0; i < 100; i++) {frame.add(new Button("按钮"+i));}//4.设置Frame为最佳大小frame.pack();//5.设置Frame可见frame.setVisible(true);}
}

Java FlowLayout(流式布局)布局管理器相关推荐

  1. 自定义 FlowLayout流式布局搜索框 加 GreenDao存取搜索记录,使用RecyclerView展示

    输入框布局的shape <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android ...

  2. Android FlowLayout 流式布局

    FlowLayout 流式布局 Android 流式布局控件,实现自动换行,操出范围可以滑动功能,未使用控件复用功能,所以不应该有太多的子控件. 主要包含功能: 流式布局,自动换行 使用Adapter ...

  3. Java stream流式计算详解

    Java stream流式计算详解 1. Stream概述 1.1 Stream简介 1.2 Stream分类 2. Stream操作 2.1 Stream创建 2.2 Stream无状态操作 2.3 ...

  4. java 防止文件下载_Spring,Java:流式文件下载以避免内存不足错误

    我正在开发一个Spring MVC应用程序,用户可以在其中下载文件.用户可以点击触发下载机制的附件.Spring,Java:流式文件下载以避免内存不足错误 昨天,当该多个下载和两个具有约2 GB的文件 ...

  5. java未发现数据源名称并且未指定默认驱动程序_转:java.sql.SQLException: [Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序...

    在Win7 64位系统下,使用Java+Access数据库编程,用Java连数据库时,出现错误提示,如下: Java java.sql.SQLException: [Microsoft][ODBC 驱 ...

  6. OpenCart多图片拖放式上传管理器

    2019独角兽企业重金招聘Python工程师标准>>> OpenCart多图片拖放式上传管理器 OpenCart多图片拖放式上传管理器   4 评价  |  如果您对本商品有什么问题 ...

  7. 【IVI】Car.java获取Car相关服务和对应管理器

    [IVI]Car.java获取Car相关服务和对应管理器 android12-release Android Automotive OS知识体系 Android 知识体系 1.获取Car对象方式 pa ...

  8. FlowLayout流式布局管理器与网格布局GridLayout

    总结 1.继承JFrame类 2.在最上方定义组件 3.在构造方法中创建组件 4.在构造方法中添加组件 5.设置窗体属性 6.显示窗体 7.在主函数中创建对象 所有布局管理器都可以添加任意组件 (滚动 ...

  9. 4.布局:FlowLayout流式布局(Java swing 入门)

    FlowLayout(流式布局管理器)是 JPanel 和 JApplet 的默认布局管理器.FlowLayout 会将组件按照从上到下.从左到右的放置规律逐行进行定位.与其他布局管理器不同的是,Fl ...

  10. android 搜索历史流布局,FlowLayout流式布局实现搜索清空历史记录

    本文实例为大家分享了FlowLayout实现搜索清空历史记录的具体代码,供大家参考,具体内容如下 效果图:点击搜索框将搜索的历史在流式布局中展示出来,清空历史记录就会将历史清空,每次搜索后都存入sp中 ...

最新文章

  1. 小眼睛适合大框还是小框眼镜_北京潘家园眼镜城良心商家推荐
  2. c# Application.DoEvents
  3. 如何linux中文改为英文,CentOS系统如何将中文语言改成英文
  4. Windows下VTK6.0.0安装详解(CMake使用说明)
  5. @hdu - 6372@ sacul
  6. c语言怎样用格式化文件存储,如何用格式化的方式读写文件
  7. 64位c语言调用32位glibc,glibc fclose源代码阅读及伪造_IO_FILE利用fclose实现任意地址执行...
  8. 第7章[7.19] Grid行选择的多种场景和实现方式
  9. Session 另一种用法,其实是一样的
  10. 多示例学习 MIL(multiple instance learning) 理解
  11. 评分预测会不会大于满分5.0的情况?
  12. [ 原创 ]2017年3月25日
  13. Altium Designer生成Gerber文件
  14. 调用百度API,文字转语音
  15. Fiddler抓包配置
  16. 编写js代码,点击相应的按钮使得网页背景颜色发生改变
  17. 游戏策划是怎样炼成的——17173七月流火专访天下贰主策划叶航(转)
  18. 计算机 考研 学硕专硕,2019计算机考研常识:学硕与专硕对比
  19. java实现wife链接硬件_【技术分享】在Android 910上面实现WIFI功能
  20. PDF如何删除数字签名

热门文章

  1. 西门菲莎大学计算机专业怎么样,西门菲莎大学
  2. 【数值分析】分别使用复合梯形公式和复合辛普森公式计算如下积分(python)
  3. Voyager CEO谈为什么加密货币监管将促进大规模采用(上篇)
  4. 文玩第一股,微拍堂跑在了玩物得志前面?
  5. 【动网论坛7.1 sp1 修改】-会员信息修改方案
  6. 阿里负责人揭秘面试潜规则
  7. 关于产品的一些思考——阿里巴巴之来往
  8. 如何快速定位 elastic search 运行出现的 bug HTTP/1.1 400 Bad Request type is missing VALUE_NUMBER_INT
  9. 3D游戏建模真的很累吗?前景怎么样?需要什么基础?
  10. CAS-认证流程详解