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();
}
使每列的寬度相同,默認值為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);
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