布局管理是决定容器中组件的大小和位置的过程。布局管理器(Layout Manager)负责管理容器中组件的布局。它指明了容器中构件的位置和尺寸大小。(由java.awt包提供。下面是比较常用的 几个布局管理器)
[table]
|FlowLayout| 流布局管理器 |
|BorderLayout|边界布局管理器 |
|GridLayout|格子布局管理器 |
|CardLayout|卡片布局管理器 |
|GridBagLayout|GridBag布局管理器 |
[/table]
[b]1. FlowLayout[/b]
FlowLayout类是流布局管理器类,它是缺省布局管理器。流布局管理器可以自动依据窗口的大小,将组件由左到右、由上到下的顺序来排列。
FlowLayout构造方法如下所示:
FlowLayout()
FlowLayout(int align)
FlowLayout(int align, int hgap, int vgap)
[b]2.BorderLayout[/b]
BorderLayout:边界布局管理器可以让我们按东、西、南、北、中的方位来布置组件。 BorderLayout类有以下构造函数:
BorderLayout():创建边界布局管理器。
BorderLayout(int hgap, int vgap):创建边界布局管理器,并指定控件的垂直与水平间隔。
[b]3.GridLayout[/b]
GridLayout:格子布局管理器把显示区域编组为矩形格子组,然后将控件依次放入每个格子中,从左到右,自顶向下地放置。 GridLayout类有以下构造函数:
GridLayout(int rows, int cols)
GridLayout(int rows, int cols, int hgap, int vgap)
[b]4.CardLayout[/b]
CardLayout卡片布局管理器是一个比较复杂的布局管理器。用这个管理器,可以使得容器象一个卡片盒,而容器中的页面象卡片盒中的卡片一样任意翻动显示。
CardLayout布局管理器有以下构造函数:
CardLayout():创建一卡片布局管理器
CardLayout(int hgap, int vgap):创建一卡片布局管理器,并指定左右边距和上下边距。
[b]5.GridBagLayout[/b]
GridBagLayout:布局管理器为AWT提供的最灵活、最复杂的布局管理器。GridBagConstraints类来保存位置信息。
使用GridBagLayout类提供的setConstraints()方法将GridBagConstraints类对象绑定到相应组件上。
实现布局的方法:
用GridBagConstraints类的属性设置方位信息
利用GridBagLayout类提供的setConstraints()方法将方位信息绑定到某组件上
将组件加到某容器中
[b]fill属性:可以用来确定如何在它的显示区域内显示组件。 [/b]
[table]
|有效值 |描述|
|GridBagConstraints.NONE |按组件的缺省高度和宽度填充|
|GridBagConstraints.HORIZONTAL | 在不改变高度的情况下,填满水平方向的显示区域|
|GridBagConstraints.VERTICAL | 在不改变宽度的情况下,填满垂直方向的显示区域|
|GridBagConstraints.BOTH |填满整个显示区域|
[/table]
[b]weightx、weighty属性[/b]
weightx属性确定此组件是否要拉长,以水平地填入显示区。缺省值均为0(不拉长),另一效值为1(拉长)。weighty属性确定此组件是否垂直拉长填入显示区。有效值相同。
[b]gridwidth、gridheight属性[/b]
gridwidth属性指出组件显示区域中列的数目。这些属性的缺省值为1。
设置为GridBagConstraints.REMAINDER,表明该组件后面不能再摆放其他组件,或者说如果要继续摆放组件的话,只能在下一行摆放。设置为GridBagConstraints.RELATIVE表明可以在后面继续摆放组件。
gridheight属性指出组件显示区域中行的数目。
[b]gridx,gridy 属性[/b]
属性gridx和gridy分别指出放置组件的长方形网格的行与列的数目。长方形网格最左面列为gridx=0,最高顶部为gridy=0。相当于X,Y坐标。
[b]anchor 属性[/b]
当组件小于其显示区域时使用该属性,为在显示区域内确定放置组件的位置。其有效值为:
[table]
|GridBagConstraints.CENTER (default)|
|GridBagConstraints.NORTH|
|GridBagConstraints.NORTHEAST|
|GridBagConstraints.EAST|
|GridBagConstraints.SOUTHEAST|
|GridBagConstraints.SOUTH|
|GridBagConstraints.SOUTHWEST|
|GridBagConstraints.WEST|
|GridBagConstraints.NORTHWEST|
[/table]
[table]
|FlowLayout| 流布局管理器 |
|BorderLayout|边界布局管理器 |
|GridLayout|格子布局管理器 |
|CardLayout|卡片布局管理器 |
|GridBagLayout|GridBag布局管理器 |
[/table]
[b]1. FlowLayout[/b]
FlowLayout类是流布局管理器类,它是缺省布局管理器。流布局管理器可以自动依据窗口的大小,将组件由左到右、由上到下的顺序来排列。
FlowLayout构造方法如下所示:
FlowLayout()
FlowLayout(int align)
FlowLayout(int align, int hgap, int vgap)
[b]2.BorderLayout[/b]
BorderLayout:边界布局管理器可以让我们按东、西、南、北、中的方位来布置组件。 BorderLayout类有以下构造函数:
BorderLayout():创建边界布局管理器。
BorderLayout(int hgap, int vgap):创建边界布局管理器,并指定控件的垂直与水平间隔。
[b]3.GridLayout[/b]
GridLayout:格子布局管理器把显示区域编组为矩形格子组,然后将控件依次放入每个格子中,从左到右,自顶向下地放置。 GridLayout类有以下构造函数:
GridLayout(int rows, int cols)
GridLayout(int rows, int cols, int hgap, int vgap)
[b]4.CardLayout[/b]
CardLayout卡片布局管理器是一个比较复杂的布局管理器。用这个管理器,可以使得容器象一个卡片盒,而容器中的页面象卡片盒中的卡片一样任意翻动显示。
CardLayout布局管理器有以下构造函数:
CardLayout():创建一卡片布局管理器
CardLayout(int hgap, int vgap):创建一卡片布局管理器,并指定左右边距和上下边距。
[b]5.GridBagLayout[/b]
GridBagLayout:布局管理器为AWT提供的最灵活、最复杂的布局管理器。GridBagConstraints类来保存位置信息。
使用GridBagLayout类提供的setConstraints()方法将GridBagConstraints类对象绑定到相应组件上。
实现布局的方法:
用GridBagConstraints类的属性设置方位信息
利用GridBagLayout类提供的setConstraints()方法将方位信息绑定到某组件上
将组件加到某容器中
[b]fill属性:可以用来确定如何在它的显示区域内显示组件。 [/b]
[table]
|有效值 |描述|
|GridBagConstraints.NONE |按组件的缺省高度和宽度填充|
|GridBagConstraints.HORIZONTAL | 在不改变高度的情况下,填满水平方向的显示区域|
|GridBagConstraints.VERTICAL | 在不改变宽度的情况下,填满垂直方向的显示区域|
|GridBagConstraints.BOTH |填满整个显示区域|
[/table]
[b]weightx、weighty属性[/b]
weightx属性确定此组件是否要拉长,以水平地填入显示区。缺省值均为0(不拉长),另一效值为1(拉长)。weighty属性确定此组件是否垂直拉长填入显示区。有效值相同。
[b]gridwidth、gridheight属性[/b]
gridwidth属性指出组件显示区域中列的数目。这些属性的缺省值为1。
设置为GridBagConstraints.REMAINDER,表明该组件后面不能再摆放其他组件,或者说如果要继续摆放组件的话,只能在下一行摆放。设置为GridBagConstraints.RELATIVE表明可以在后面继续摆放组件。
gridheight属性指出组件显示区域中行的数目。
[b]gridx,gridy 属性[/b]
属性gridx和gridy分别指出放置组件的长方形网格的行与列的数目。长方形网格最左面列为gridx=0,最高顶部为gridy=0。相当于X,Y坐标。
[b]anchor 属性[/b]
当组件小于其显示区域时使用该属性,为在显示区域内确定放置组件的位置。其有效值为:
[table]
|GridBagConstraints.CENTER (default)|
|GridBagConstraints.NORTH|
|GridBagConstraints.NORTHEAST|
|GridBagConstraints.EAST|
|GridBagConstraints.SOUTHEAST|
|GridBagConstraints.SOUTH|
|GridBagConstraints.SOUTHWEST|
|GridBagConstraints.WEST|
|GridBagConstraints.NORTHWEST|
[/table]