GridBagLayout
类是一个灵活的布局管理器,它不要求组件的大小相同便可以将组件垂直、水平或沿它们的基线对齐。每个 GridBagLayout
对象维持一个动态的矩形单元网格,每个组件占用一个或多个这样的单元,该单元被称为显示区域 。
每个由 GridBagLayout
管理的组件都与 GridBagConstraints
的实例相关联。Constraints 对象指定组件的显示区域在网格中的具体放置位置,以及组件在其显示区域中的放置方式。除了 Constraints 对象之外,GridBagLayout
还考虑每个组件的最小大小和首选大小,以确定组件的大小。
为了有效使用网格包布局,必须自定义与组件关联的一个或多个 GridBagConstraints
对象。可以通过设置一个或多个实例变量来自定义 GridBagConstraints
对象:
-
指定包含组件显示区域的前导角的单元,在此显示区域中,位于网格原点的单元地址是
gridx = 0
,gridy = 0
。对于水平的从左到右的布局,组件的前导角是其左上角。对于水平的从右到左的布局,组件的前导角是其右上角。使用GridBagConstraints.RELATIVE
(默认值),指定会将组件直接放置在之前刚添加到容器中的组件的后面(沿 X 轴向为gridx
或 Y 轴向为gridy
)。
GridBagConstraints.gridx
、
GridBagConstraints.gridy : 指定这个网格的起始位置,这是一个相对坐标
-
指定组件的显示区域中行(针对
gridwidth
)或列(针对gridheight
)中的单元数。默认值为 1。使用GridBagConstraints.REMAINDER
指定组件的显示区域,该区域的范围是从gridx
到该行(针对gridwidth
)中的最后一个单元,或者从gridy
到该列(针对gridheight
)中的最后一个单元。 使用GridBagConstraints.RELATIVE
指定组件的显示区域,该区域的范围是从gridx
到其所在行(针对gridwidth
)的倒数第二个单元,或者从gridy
到其所在列(针对gridheight
)的倒数第二个单元。
GridBagConstraints.gridwidth
、
GridBagConstraints.gridheight :