Posted on 2006-03-08 14:34
fortune 閱讀(1762)
評(píng)論(0) 編輯 收藏 所屬分類:
我的學(xué)習(xí)筆記
NumColumns(列數(shù))是GridLayout中最重要的域,它將Composite劃分成NumColumns列,往上添加控件時(shí)依次從左至右排列當(dāng)控件數(shù)多于列數(shù)時(shí)換行
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
使每列的寬度相同,默認(rèn)值為false
MarginWidth, MarginHeight, HorizontalSpacing, and VerticalSpacing
頁(yè)邊寬度,頁(yè)邊高度,水平間隔,垂直間隔
GridData
GridData是控制小部件布局的對(duì)象,例如
GridData gridData = new GridData();
gridData.horizontalAlignment = GridData.FILL;//horizontalAlignment是指水平對(duì)齊方式
//(有GEGINING,END,CENTRE,F(xiàn)ILL)
gridData.grabExcessHorizontalSpace = true;
button1.setLayoutData(gridData);
注意:每個(gè)在GridLayout中的widget都有一個(gè)自己的GridData,如果沒有為它設(shè)置則系統(tǒng)會(huì)給他一個(gè)默認(rèn)的GridData!
每個(gè)alignment域指定控件在它的格子單元內(nèi)水平/垂直怎樣對(duì)齊,他們是下面4個(gè)值中的一個(gè)
· BEGINNING(左對(duì)齊)· CENTER(中間對(duì)齊)· END右對(duì)齊· FILL充滿格子
缺省值為horizontalAlignment is BEGINNING , verticalAlignment is CENTER
允許你將widget向右移動(dòng)指定的像素位
GridData gridData = new GridData();
gridData.horizontalIndent = 4;
button.setLayoutData(gridData);
span域可使widget占據(jù)多個(gè)grid單元(僅在horizontalAlignment為Fill時(shí)有效)
GridData gridData = new GridData();
gridData.horizontalAlignment = GridData.FILL;
gridData.horizontalSpan = 2;
button5.setLayoutData(gridData);
也可以它在垂直方向占用多個(gè)grid單元(僅在verticalAlignment為Fill時(shí)有效)
注意:假如所有的widgets總共只有x行則你想讓它在垂直方向占有x+1個(gè)grid單元是沒有作用的
指定widget的大小(如果horizontalAlignment或verticalAlignment為FILL的時(shí)候就沒有意義了)
GridData gridData = new GridData();
gridData.widthHint = 70;
gridData.heightHint = 40;
button5.setLayoutData(gridData);
注:最好不要對(duì)大小硬編碼
Style 常量 |
描述 |
FILL_HORIZONTAL |
擴(kuò)展單元來水平地充滿任何空余空間。
指HORIZONTAL_ALIGN_FILL |
FILL_VERTICAL |
擴(kuò)展單元來垂直地充滿任何空余空間。
指VERTICAL_ALIGN_FILL |
FILL_BOTH |
水平和垂直地?cái)U(kuò)展單元空間。
等價(jià)于FILL_HORIZONTAL | FILL_VERTICAL. |
HORIZONTAL_ALIGN_BEGINNING |
居左排列單元內(nèi)容。 |
HORIZONTAL_ALIGN_END |
居右排列單元內(nèi)容。 |
HORIZONTAL_ALIGN_CENTER |
水平居中排列單元內(nèi)容。 |
HORIZONTAL_ALIGN_FILL |
擴(kuò)展單元空間充滿單元內(nèi)水平空余空間。 |
VERTICAL_ALIGN_BEGINNING |
排列單元內(nèi)容于單元頂部。 |
VERTICAL_ALIGN_END |
排列單元內(nèi)容于單元底部。 |
VERTICAL_ALIGN_CENTER |
排列單元內(nèi)容于垂直中央。 |
VERTICAL_ALIGN_FILL |
擴(kuò)展單元空間充滿單元內(nèi)垂直空余空間。 |
Table 6.2 GridData 尺寸屬性
屬性 |
描述 |
默認(rèn)值 |
widthHint |
列的最小寬度。SWT.DEFAULT指明了沒有最小寬度。 |
SWT.DEFAULT |
heightHint |
行的最小高度。SWT.DEFAULT指明了沒有最小高度。 |
SWT.DEFAULT |
horizontalIndent |
單元左側(cè)邊際與control之間的象素間隙數(shù)量。 |
0 |
horizontalSpan |
單元所覆蓋的網(wǎng)格的列的數(shù)目。 |
1 |
verticalSpan |
單元所覆蓋的網(wǎng)格的行的數(shù)目。 |
1 |