SWT布局管理器

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 GridData GridData. HORIZONTAL_ALIGN_FILL

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

ü         GridData.FILL_BOTH 双向抢占式

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

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

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

 

StackLayout

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

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

 

ü         new FormData(int width int 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;

 

你可能感兴趣的:(SWT,网格)