上一篇中对GridBagLayout的整理主要来自《Java核心技术第八版(卷I)》和《Java 高级编程(第二版)》以及网上一些信息的整理,还是显得内容比较冗长,复杂,内容太多。下面对上一篇做一个简单的归纳拓展。
GridBagLayout管理的容器中添加的每一个组件都关联一组约束值,这些约束值封装在GridBagConstraints类的实例中。
GridBagConstraints提供两个构造函数:无参构造函数和传递11个约束值的构造函数,尽管这两个构造函数都可使用,但后一个构造函数传递
的参数实在是太多了,
一般都是使用无参构造函数,然后修改自己设定的部分约束值,指的说明的是,
GridBagConstraints的这11个约束值并不是通过get/set方式来设定,而是直接通过 【对象.属性(如 constraints.fill)】来设定,
虽然容器添加的组件通常不止一个,且每个组件都有格子的约束值,但可以为所有组件使用同一个GridBagConstraints实例
。
GridBagConstraints的11个参数:
1)int gridx,gridy
指定单元格的起始行和列,默认为0。
2)int gridwidth,gridheight
指定跨越单元格的行和列的范围,默认为1。
3)double weightx,weighty
单元格在扩大时的增量域,默认为0.0
4)int fill
指定组件在单元格内的填充行为,默认为NONE
5)int anchor
表示组件在单元格内的对齐方式,默认为CENTER
6)int ipadx,ipady
指定组件周围的内部填充,默认为0。
7)Insets insets
指定组件边框周围的外部填充,默认为不填充。
因为GridBagConstraints类没有set方法来设置其属性,而且类名较长,这儿可以使用帮助类GBC来实现GridBagConstraints的约束值的设置:
1.名字简短:GBC extends GridBagConstraints
2.创建最床用的构造函数GBC(int gridx,int gridy)和GBC(int gridx,int gridy,int Gridwidth,int gridheight)
3.设置便捷的setter,setter方法返回this,使得可以继续链接它们
GBC setGridXY(int gridx,int gridy){…… return this;};
GBC setGridWH(int gridweight,int gridheight){…… return this;};
GBC setWeight(double weightx,double weighty){…… return this;};
GBC setAnchor(int anchor){…… return this;};
GBC setFill(int fill){…… return this;};
GBC setInsets(Insets insets){…… return this;};
GBC setIpad(int ipadx,ipady){…… return this;};
使用网格组布局的一些步骤:
1.在纸上画出组件布局草图
2.找出一种网格,小组件被放置在一个单元格内,大组件将横跨多个单元格
3.用0,1,2....标识网格的行和列,现在可以读取gridx,gridy,gridwidth和gridheight的值
4.对于每个组件,考虑如下问题:是否需要水平或者垂直填充它所在的单元格?如果不需要,那么那么希望如何排列?这些就是fill和anchor参数的设置
5.将所有组件的增量设置为100.如果需要某行或者某列始终保持默认的大小,将将这行的weightx和weighty设置为0
6.编写代码,仔细检查GridBagConstraints的设置,错误的约束可能会破坏整个布局
7.编译、运行
参考:
1.《
Pro Java Programming(Second Edition)
》
2.《
Core Java I
》
分享到:
相关推荐
本篇文章将详细介绍如何使用RecyclerView,特别是其核心部分——布局管理器。 首先,RecyclerView的核心概念是视图复用,这使得在大量数据滚动时性能更优。它通过ViewHolder模式减少了findViewById()调用的次数,...
NULL 博文链接:https://alog2012.iteye.com/blog/1613294
### 中小制造企业自营仓库布局设计案例分析 #### 一、背景介绍 Y厂作为一家外商投资的中小型制造企业,其供应链管理面临着独特的挑战。该企业主要供应商和客户均位于国外,产品特点表现为品种多样且批量较小。为了...
1.1 布局管理器 1.1.1 基本布局管理器(QBoxLayout) 1.1.2 栅格布局管理器(QGridLayout) 1.1.3 窗体布局管理器(QFormLayout) 1.1.4 综合使用布局管理器 1.2 设置部件大小 1.2.1 大小提示和最小大小提示 1.2.2 ...
信息通信技术产业布局的影响因素——基于中国30个省市区的实证研究.pdf
以未来的名义,布局电动汽车产业——中国国际电动汽车会议及上海国际未来驾驶技术展览暨会议成功举办.pdf
微信小程序——瀑布流布局(截图+源码).zip 微信小程序——瀑布流布局(截图+源码).zip 微信小程序——瀑布流布局(截图+源码).zip 微信小程序——瀑布流布局(截图+源码).zip 微信小程序——瀑布流布局(截图+...
———————————————— 版权声明:本文为CSDN博主「平谷一勺」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:...
这篇博客文章主要探讨的是在软件界面设计中,一种常见的布局管理器——AccordionContainer(手风琴容器)。AccordionContainer是一种特殊的布局,它允许用户在一个有限的空间内展示多个面板,而每次只显示一个面板的...
"别具光芒——CSS属性、浏览器兼容与网页布局"这个主题涵盖了三个核心概念:CSS属性、浏览器兼容性和网页布局。 首先,我们来详细探讨CSS属性。CSS提供了无数的属性,如颜色、字体、大小、位置等,这些属性共同决定...
微信小程序——FlexLayout布局(截图+源码).zip 微信小程序——FlexLayout布局(截图+源码).zip 微信小程序——FlexLayout布局(截图+源码).zip 微信小程序——FlexLayout布局(截图+源码).zip 微信小程序——...
【标题】"安卓Android源码——文件管理器源码.zip"是针对Android系统的一个开源项目,专注于文件管理器的应用程序开发。源码分析对于深入理解Android操作系统如何处理文件操作和目录管理至关重要,这对于Android...
2. **固定布局**:在固定布局中,元素的尺寸是固定的,不随浏览器窗口变化而改变。虽然在某些情况下提供了更好的控制,但对不同屏幕尺寸的适应性较差。 3. **网格布局**:网格布局允许开发者创建二维的、可重复的...
**pdg阅读器——打开pdg文件** PDG文件是一种由超星阅览器(SSReader)生成的电子图书格式,广泛应用于学术文献、图书、期刊等数字资源的存储。这种格式具有良好的版权保护机制,因此在学术界和图书馆领域较为常见...
Android学习笔记(二)android studio基本控件及布局(实现图片查看器) Android学习笔记(三)android studio中CheckBox自定义样式(更换复选框左侧的勾选图像) Android学习笔记(四)Android 中Activity页面的...
微信小程序——侧滑布局(截图+源码).zip 微信小程序——侧滑布局(截图+源码).zip 微信小程序——侧滑布局(截图+源码).zip 微信小程序——侧滑布局(截图+源码).zip 微信小程序——侧滑布局(截图+源码).zip ...
UI布局——————————√ 窗口开启和关闭动画(2D和3D)—–√ 用户注册和修改———————√ 在我身上——————————–√ 国际奥委会———————————-√ 数据加密(MD5、DES)—————-√ ...