NumColumns(列数)是GridLayout中最重要的域,它将Composite划分成NumColumns列,往上添加控件时依次从左至右排列当控件数多于列数时换行
Display display = new Display();
Shell shell = new Shell(display);
GridLayout gridLayout = new GridLayout();
gridLayout.numColumns = 3;
shell.setLayout(gridLayout);
new Button(shell, SWT.PUSH).setText("B1");
new Button(shell, SWT.PUSH).setText("Wide Button 2");
new Button(shell, SWT.PUSH).setText("Button 3");
new Button(shell, SWT.PUSH).setText("B4");
new Button(shell, SWT.PUSH).setText("Button 5");
shell.pack();
shell.open();
while (!shell.isDisposed()) {
if (!display.readAndDispatch()) display.sleep();
}
MakeColumnsEqualWidth
使每列的宽度相同,默认值为false
MarginWidth, MarginHeight, HorizontalSpacing, and VerticalSpacing
页边宽度,页边高度,水平间隔,垂直间隔
GridData
GridData是控制小部件布局的对象,例如
GridData gridData = new GridData();
gridData.horizontalAlignment = GridData.FILL;//horizontalAlignment是指水平对齐方式
//(有GEGINING,END,CENTRE,FILL)
gridData.grabExcessHorizontalSpace = true;
button1.setLayoutData(gridData);
注意:每个在GridLayout中的widget都有一个自己的GridData,如果没有为它设置则系统会给他一个默认的GridData!
HorizontalAlignment and VerticalAlignment
每个alignment域指定控件在它的格子单元内水平/垂直怎样对齐,他们是下面4个值中的一个
· BEGINNING(左对齐)· CENTER(中间对齐)· END右对齐· FILL充满格子
缺省值为horizontalAlignment is BEGINNING , verticalAlignment is CENTER
HorizontalIndent
允许你将widget向右移动指定的像素位
GridData gridData = new GridData();
gridData.horizontalIndent = 4;
button.setLayoutData(gridData);
HorizontalSpan and VerticalSpan
span域可使widget占据多个grid单元(仅在horizontalAlignment为Fill时有效)
GridData gridData = new GridData();
gridData.horizontalAlignment = GridData.FILL;
gridData.horizontalSpan = 2;
button5.setLayoutData(gridData);
也可以它在垂直方向占用多个grid单元(仅在verticalAlignment为Fill时有效)
注意:假如所有的widgets总共只有x行则你想让它在垂直方向占有x+1个grid单元是没有作用的
GrabExcessHorizontalSpace and GrabExcessVerticalSpace
当用户改变窗口大小时, GrabExcessHorizontalSpace 和GrabExcessVerticalSpace指定该控件是否填充增大的空间
WidthHint and HeightHint
指定widget的大小(如果horizontalAlignment或verticalAlignment为FILL的时候就没有意义了)
GridData gridData = new GridData();
gridData.widthHint = 70;
gridData.heightHint = 40;
button5.setLayoutData(gridData);
注:最好不要对大小硬编码
Style 常量
描述
FILL_HORIZONTAL
扩展单元来水平地充满任何空余空间。
指HORIZONTAL_ALIGN_FILL
FILL_VERTICAL
扩展单元来垂直地充满任何空余空间。
指VERTICAL_ALIGN_FILL
FILL_BOTH
水平和垂直地扩展单元空间。
等价于FILL_HORIZONTAL | FILL_VERTICAL.
HORIZONTAL_ALIGN_BEGINNING
居左排列单元内容。
HORIZONTAL_ALIGN_END
居右排列单元内容。
HORIZONTAL_ALIGN_CENTER
水平居中排列单元内容。
HORIZONTAL_ALIGN_FILL
扩展单元空间充满单元内水平空余空间。
VERTICAL_ALIGN_BEGINNING
排列单元内容于单元顶部。
VERTICAL_ALIGN_END
排列单元内容于单元底部。
VERTICAL_ALIGN_CENTER
排列单元内容于垂直中央。
VERTICAL_ALIGN_FILL
扩展单元空间充满单元内垂直空余空间。
Table 6.2 GridData 尺寸属性
属性
描述
默认值
widthHint
列的最小宽度。SWT.DEFAULT指明了没有最小宽度。
SWT.DEFAULT
heightHint
行的最小高度。SWT.DEFAULT指明了没有最小高度。
SWT.DEFAULT
horizontalIndent
单元左侧边际与control之间的象素间隙数量。
0
horizontalSpan
单元所覆盖的网格的列的数目。
1
verticalSpan
单元所覆盖的网格的行的数目。
1
参考:http://www.eclipse.org/articles/Understanding%20Layouts/Understanding%20Layouts.htm
WidthHint and HeightHint
指定widget的大小(如果horizontalAlignment或verticalAlignment为FILL的时候就没有意义了)
GridData gridData = new GridData();
gridData.widthHint = 70;
gridData.heightHint = 40;
button5.setLayoutData(gridData);
注:最好不要对大小硬编码
Style 常量
描述
FILL_HORIZONTAL
扩展单元来水平地充满任何空余空间。
指HORIZONTAL_ALIGN_FILL
FILL_VERTICAL
扩展单元来垂直地充满任何空余空间。
指VERTICAL_ALIGN_FILL
FILL_BOTH
水平和垂直地扩展单元空间。
等价于FILL_HORIZONTAL | FILL_VERTICAL.
HORIZONTAL_ALIGN_BEGINNING
居左排列单元内容。
HORIZONTAL_ALIGN_END
居右排列单元内容。
HORIZONTAL_ALIGN_CENTER
水平居中排列单元内容。
HORIZONTAL_ALIGN_FILL
扩展单元空间充满单元内水平空余空间。
VERTICAL_ALIGN_BEGINNING
排列单元内容于单元顶部。
VERTICAL_ALIGN_END
排列单元内容于单元底部。
VERTICAL_ALIGN_CENTER
排列单元内容于垂直中央。
VERTICAL_ALIGN_FILL
扩展单元空间充满单元内垂直空余空间。
Style 常量
描述
FILL_HORIZONTAL
扩展单元来水平地充满任何空余空间。
指HORIZONTAL_ALIGN_FILL
FILL_VERTICAL
扩展单元来垂直地充满任何空余空间。
指VERTICAL_ALIGN_FILL
FILL_BOTH
水平和垂直地扩展单元空间。
等价于FILL_HORIZONTAL | FILL_VERTICAL.
HORIZONTAL_ALIGN_BEGINNING
居左排列单元内容。
HORIZONTAL_ALIGN_END
居右排列单元内容。
HORIZONTAL_ALIGN_CENTER
水平居中排列单元内容。
HORIZONTAL_ALIGN_FILL
扩展单元空间充满单元内水平空余空间。
VERTICAL_ALIGN_BEGINNING
排列单元内容于单元顶部。
VERTICAL_ALIGN_END
排列单元内容于单元底部。
VERTICAL_ALIGN_CENTER
排列单元内容于垂直中央。
VERTICAL_ALIGN_FILL
扩展单元空间充满单元内垂直空余空间。
Table 6.2 GridData 尺寸属性
属性
描述
默认值
widthHint
列的最小宽度。SWT.DEFAULT指明了没有最小宽度。
SWT.DEFAULT
heightHint
行的最小高度。SWT.DEFAULT指明了没有最小高度。
SWT.DEFAULT
horizontalIndent
单元左侧边际与control之间的象素间隙数量。
0
horizontalSpan
单元所覆盖的网格的列的数目。
1
verticalSpan
单元所覆盖的网格的行的数目。
1
属性
描述
默认值
widthHint
列的最小宽度。SWT.DEFAULT指明了没有最小宽度。
SWT.DEFAULT
heightHint
行的最小高度。SWT.DEFAULT指明了没有最小高度。
SWT.DEFAULT
horizontalIndent
单元左侧边际与control之间的象素间隙数量。
0
horizontalSpan
单元所覆盖的网格的列的数目。
1
verticalSpan
单元所覆盖的网格的行的数目。
1