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;