• java swing 布局心得(避免忘记)


    swing布局一定要用netbean 的原生布局插件 或eclipse 的window builder 插件
    否则手写太麻烦 也容易错,建议使用window builder
    window builder 设计出来的代码比较简单

    注意: 如果eclipse 编辑器中缺少Design 设计界面
    可以使用 右侧菜单中 open with-> windowbuilder editor 打开

    gridLayout 布局使用

    用在固定宽度和高度的布局场景 
    通常用于菜单栏,按钮组,文档列表等场景	
    例如:制作计算器按键,或者奖品九宫格等
    1) 修改rows和columns属性 可以限定行和列数
    2) 修改rgap  和hgap可以修改行间距和列间距
    
    • 1
    • 2
    • 3
    • 4
    • 5

    absoluteLayout 绝对定位布局

    因为不能自适应窗体大小尺寸,所以比较少用,
    但是 可以用在窗体大小不能调整的情况
    很好用 ,直接拖组件在上面即可
    
    • 1
    • 2
    • 3

    flowLayout 流布局

    其实flow不适合不同尺寸的组件的布局
    比较适合相同尺寸的组件布局 
    通常用在一个固定大小容器中
    而且flow 可以换行布局( 这个特性比较特殊)
    例如: 
    一篇文章的排版效果就比较适合用flow
    或者bar条和菜单条的菜单或按钮组的并排排列效果
    在整体界面布局时用不到,
    因为不同区域的尺寸大小不一样,用流布局非常丑
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    borderlayout 布局

    默认是border 布局 分上下左右 中	
    上下左右区域的放置组件
    如果设置首选尺寸 区域大小是可以固定的
    中区的组件 尺寸可以跟随容器大小变化自动调整
    
    • 1
    • 2
    • 3
    • 4

    boxLayout 布局

    需要水平排列或者垂直排列的场景
    flow布局只能从头到尾或者从尾到头, 
    而box布局可以垂直排列,
    可用的地方其实也是在某个单一的容器内部
    不适合用于窗体的整体布局
    水平排列 x-axis 
    垂直排列y-axis
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    gridbagLayout 布局

    既有 grid表格布局的特性, 又可以单独调整行高和列宽 类似于xls表格
    同时还具有列头和行头的效果
    类似于python中的grid布局
    创建单元格样式
    GridBagConstraints 单元格 = new GridBagConstraints();
    .gridx = 0; 表格的列坐标
    .gridy = 0; 表格的行坐标
    .insets = new Insets(0, 0, 5, 0);设置单元格边距
    .fill = GridBagConstraints.BOTH; 单元格填充效果
    
    panel.add(btn组件, 单元格);填入组件到容器中
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    GroupLayout 默认的布局对象 ,比较复杂

    它的布局原理是 ,
    
    • 1

    先按照水平和垂直 分组排列设计

    	.setHorizontalGroup( //设置水平组排列
    	.setVerticalGroup( //设置垂直组排列		
    
    • 1
    • 2

    然后在不同排列表中 添加 组

    		 .createParallelGroup( //创建平行组
    		 .createSequentialGroup() //创建顺序组	
    		 .addGroup() 添加组
    		 .addComponent 添加组件
    
    • 1
    • 2
    • 3
    • 4
    最后组件的前面,之间或者后面 ,填充不同类型的间隙块
    		 	.addGap(),添加固定间隙块
    			.addPreferredGap 添加首选且可调整间隙块
    			.addContainerGap 添加自适应间隙块
    
    • 1
    • 2
    • 3
  • 相关阅读:
    k8s+kubeedge+sedna安装的全套流程
    ISR实现RDN图像增强
    Distantly Supervised Named Entity Recognition via Confidence-Based Multi-Class Positive and Unlabele
    排列组合,相关算法
    el-tree中插入图标并且带提示信息
    GBPC1510W-ASEMI铝底塑壳针脚高散热方桥GBPC1510W
    如何使用腾讯云GPU云服务器对图像或视频进行超分辨率
    112二二位
    基本微信小程序的购物商城系统
    如何配置AI参数SK接口
  • 原文地址:https://blog.csdn.net/zdyah/article/details/126308187