GridBagLayout(网格包布局管理)
GridLayout布局管理器中要求放入网格中的组件的大小与网格大小一致,而且放入的顺序是相对固定的,即不能使前面的网格的内容为空,各组件样式的尺寸大小要保持一致,这样的严格要求使各组件大小一致匀称,在容器中排列整齐划一,所设计出来的界面也非常的规整。但是这样的设计风格对于某些需求灵活的应用界面设计来说相对过于苛刻。所以为让网格布局管理器的适应能力更强,就产生了另外一种GridBagLayout布局管理器,在这种管理器中,一格组件可以占多格,也可以占一格或者是一格之中的一个部分,并且组件的布局和加入的顺序是相对自由多变的,每个组件可以有不同的尺寸,这样的特性使得每一个组件动态地维持一个单元网格。而实际网格的大小是依据位于GridBagLayout以及其助手类GridBagConstraints中的组件数目而定的。每个由 GridBagLayout 管理的组件都与 GridBagConstraints 的实例相关联,因此Constraints 对象可用以指定组件在网格中的显示区域以及组件在其显示区域中的放置方式。
综合上面的设计要求GridBagLayout是相对复杂复杂与灵活的一个布局管理器。这种管理器是在GridLayout的基础之上发展而来的,尽管他看起来像是GridLayout的子类,然而它却是完全不同的一个类。
网格快布局管理器的使用方法:
网格的总体方向取决于容器的ComponentOrientation属性。对于水平的从左到右的方向,网格坐标 (0,0)位于容器的左上角,其中 X向右递增,Y 向下递增。对于3*3的网格从左到右、从上到下的坐标依次是