SWT布局管理器

来源:互联网 发布:冒险岛装备数据库 编辑:程序博客网 时间:2024/05/17 21:53

FillLayout 充满式布局管理器,组件的大小会尽量的充满整个容器。

RowLayout,行列式布局管理器,简单的排列组件

GridLayout,网格式布局管理器,非常强大,可以胜任所有的布局。

FormLayout,表格是布局管理器,通过创建组件各个边的距离来布局组件,和GridLayout一样强大。

StackLayout,堆栈式GridLayout,像书页一样,只显示最前面的组件。

 

FillLayout是最简单的布局类,把组件摆成一行或一列,并强制组件的大小一致,组件的高度与最高组件一直,宽度与最宽组件一致。简单的说,它里面的组件会尽量的充满这个容器。

Ø         不能折行。

Ø         默认排列是HORIZONTAL ,使用SWT.VERTICAL更改。将new FillLayout()改为new FillLayout(SWT.VERTICAL)。或filllayout.type = SWT.VERTICAL;

Ø         filllayout.spacing = 5;设置组件间的距离

Ø         filllayout.marginHeight = 10;设置边界距离(上下)

Ø         filllayout.marginWidth = 15; 设置边界距离(左右)

 

RowLayout可以使组件折行显示,也可设置边界距离和间距。还可以通过对每个组件setLayoutData方法设置RowData对象,RowData来设置组件的大小。RowLayout默认不强制每个组件大小相同。

Ø         rowLayout.wrap = false;设置不能自动折行,默认为true

Ø         rowLayout.pack = false;设置组件的大小相同,默认为true,即不相同。

Ø         rowLayout.justify = true;设置组件可以根据空间伸展。默认为false

Ø         rowLayout.type = SWT.VERTICAL;排列方式,默认为HORIZONTAL

Ø         rowLayout.marginLeft = 5;距离容器左边缘的距离

Ø         rowLayout.marginTop = 5; 距离容器上边缘的距离

Ø         rowLayout.marginRight = 5; 距离容器右边缘的距离

Ø         rowLayout.marginBottom = 5; 距离容器下边缘的距离

Ø         rowLayout.spacing = 0;设置组件间的距离

Ø         rowLayout.marginHeight;设置边界距离(上下)

Ø         rowLayout.marginWidth;设置边界距离(左右)

Ø         对组件setLayoutData方法设置RowData,来设置组件的大小。new RowData(int width, int height)

GridLayout的布局方式是把容器里的组件摆放在一个个格子里。通过GridData来设置每一个组件的外观形状。

Ø         gridLayout.numColumns = 3;设置列数,默认为1

Ø         gridLayout.makeColumnsEqualWidth = true;把组件等距分开,默认为false

Ø         可设置边界距离和间距,与其他布局管理器类似。

Ø         GridData

ü         gridData.horizontalSpan。设置组件占的列数

ü         HORIZONTAL_ALIGN_FILL对齐式充满,让组件充满所占的空间。New GridDataGridData. HORIZONTAL_ALIGN_FILL

ü         FILL_HORIZONTAL,水平抢占式充满,将所有水平方向的空闲空间都沾满

ü         GridData.FILL_BOTH双向抢占式

ü         gridData.horizontalAlignment=GridData.CENTER | GridData.BEGINNING | GridData.END | GridData.FILL

ü         gridData.horizontalIndent,使组件右移指定长度。

ü         gridData.widthHintgridData.heithtHint可以设置组件的高度和宽度,前提是不能与GridLayout的其他设置矛盾。

 

StackLayout

ü         设置最上层显示的组件,并将界面刷新,否则显示不出来。stackLayout.topControl=controlToDisplaycontainer.layout();

FormLayout 不会像GridLayout一样因容器大小变化而导致布局错位。

 

ü         new FormData(int widthint height)

ü         new FormAttachment(int numerator, int offset)。定位于容器numerator百分比,偏移offset

ü         new FormAttachment(Control control, int offset, int allignment)。相对于组件control的某个方向(SWT.TOP, SWT.BOTTOM, SWT.LEFT, SWT.RIGHT, 偏移offset

ü         formData.top | formData.left | formData.bottom | formData.right = formAttachment;