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;