Swing -- 布局管理器

布局管理是决定容器中组件的大小和位置的过程。布局管理器(Layout Manager)负责管理容器中组件的布局。它指明了容器中构件的位置和尺寸大小。(由java.awt包提供。下面是比较常用的 几个布局管理器)
FlowLayout 流布局管理器
BorderLayout 边界布局管理器
GridLayout 格子布局管理器
CardLayout 卡片布局管理器
GridBagLayout GridBag布局管理器


1. FlowLayout
FlowLayout类是流布局管理器类,它是缺省布局管理器。流布局管理器可以自动依据窗口的大小,将组件由左到右、由上到下的顺序来排列。
FlowLayout构造方法如下所示:
FlowLayout()
FlowLayout(int align)
FlowLayout(int align, int hgap, int vgap)

2.BorderLayout
BorderLayout:边界布局管理器可以让我们按东、西、南、北、中的方位来布置组件。 BorderLayout类有以下构造函数:
BorderLayout():创建边界布局管理器。
BorderLayout(int hgap, int vgap):创建边界布局管理器,并指定控件的垂直与水平间隔。

3.GridLayout
GridLayout:格子布局管理器把显示区域编组为矩形格子组,然后将控件依次放入每个格子中,从左到右,自顶向下地放置。 GridLayout类有以下构造函数:
GridLayout(int rows, int cols)
GridLayout(int rows, int cols, int hgap, int vgap)

4.CardLayout
CardLayout卡片布局管理器是一个比较复杂的布局管理器。用这个管理器,可以使得容器象一个卡片盒,而容器中的页面象卡片盒中的卡片一样任意翻动显示。
CardLayout布局管理器有以下构造函数:
CardLayout():创建一卡片布局管理器
CardLayout(int hgap, int vgap):创建一卡片布局管理器,并指定左右边距和上下边距。

5.GridBagLayout
GridBagLayout:布局管理器为AWT提供的最灵活、最复杂的布局管理器。GridBagConstraints类来保存位置信息。
使用GridBagLayout类提供的setConstraints()方法将GridBagConstraints类对象绑定到相应组件上。
实现布局的方法:
用GridBagConstraints类的属性设置方位信息
利用GridBagLayout类提供的setConstraints()方法将方位信息绑定到某组件上
将组件加到某容器中

fill属性:可以用来确定如何在它的显示区域内显示组件。
有效值 描述
GridBagConstraints.NONE  按组件的缺省高度和宽度填充
GridBagConstraints.HORIZONTAL 在不改变高度的情况下,填满水平方向的显示区域
GridBagConstraints.VERTICAL 在不改变宽度的情况下,填满垂直方向的显示区域
GridBagConstraints.BOTH  填满整个显示区域


weightx、weighty属性
weightx属性确定此组件是否要拉长,以水平地填入显示区。缺省值均为0(不拉长),另一效值为1(拉长)。weighty属性确定此组件是否垂直拉长填入显示区。有效值相同。

gridwidth、gridheight属性
gridwidth属性指出组件显示区域中列的数目。这些属性的缺省值为1。
设置为GridBagConstraints.REMAINDER,表明该组件后面不能再摆放其他组件,或者说如果要继续摆放组件的话,只能在下一行摆放。设置为GridBagConstraints.RELATIVE表明可以在后面继续摆放组件。
gridheight属性指出组件显示区域中行的数目。

gridx,gridy 属性
属性gridx和gridy分别指出放置组件的长方形网格的行与列的数目。长方形网格最左面列为gridx=0,最高顶部为gridy=0。相当于X,Y坐标。

anchor 属性
当组件小于其显示区域时使用该属性,为在显示区域内确定放置组件的位置。其有效值为:
GridBagConstraints.CENTER (default)
GridBagConstraints.NORTH
GridBagConstraints.NORTHEAST
GridBagConstraints.EAST
GridBagConstraints.SOUTHEAST
GridBagConstraints.SOUTH
GridBagConstraints.SOUTHWEST
GridBagConstraints.WEST
GridBagConstraints.NORTHWEST

你可能感兴趣的:(swing)