Posted on 2006-03-08 14:34
fortune 阅读(1755)
评论(0) 编辑 收藏 所属分类:
我的学习笔记
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!
每个alignment域指定控件在它的格子单元内水平/垂直怎样对齐,他们是下面4个值中的一个
· BEGINNING(左对齐)· CENTER(中间对齐)· END右对齐· FILL充满格子
缺省值为horizontalAlignment is BEGINNING , verticalAlignment is CENTER
允许你将widget向右移动指定的像素位
GridData gridData = new GridData();
gridData.horizontalIndent = 4;
button.setLayoutData(gridData);
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单元是没有作用的
指定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 |