GridBagLayout
1、这是最灵活、最复杂的布局管理器。GridBagLayout和GridLayout布局管理器相似,但是GridBagLayout允许网格中的组件大小各不相同,而且允许一个组件跨越多个网格。GridBagLayout布局管理器的关键是GridBagConstraints对象。GridBagConstraint类是控制容器中每个组件布局的核心类。
2、GridBagConstraints类的常用属性:
-
gridx和gridy:设置组件所在网格的行和列。如果将gridx和 gridy的值设置为GridBagConstraints.RELATIVE表示当前组件紧跟在上一个组件后面(RELATIVE是默认值)。
-
gridwidth和gridheight:设置组件横向、纵向跨越几个网格,这两个属性默认值都是1。 属性值设为GridBagConstraints.RELATIVE表示组件在当前行或列上为倒数第二个组件。 属性的值设为GridBagConstraints.REMAINER表示组件在当前行或列上为最后一个组件。
-
fill:如果组件的显示区域大于组件需要的大小,设置组件改变方式,该属性接收以下几个属性值:
lNONE:默认,不改变组件大小。
lHORIZONTAL:组件水平方向足够长以填充显示区域,但是高度不变,
lVERTICAL:组件垂直方向足够高以填充显示区域,但长度不变。
lBOTH:组件足够大,以填充整个显示区域。
-
weightx和weighty:设置组件占领容器中水平方向和垂直方向多余空白的比例(也称为权重)。假设容器的水平方向放置三个组件,组件的weightx属性值分别为1、2、3,当容器宽度增加60个像素时,这三个容器分别增加10、20、和30的像素。weightx和weighty属性的默认值是0,即不占领多余的空间。
3、如果想要组件的大小随着容器的增大而增大,必须同时设置GridBagConstraints对象的fill属性和weightx、weighty属性。