FORTUNE

          THE WAY TO THE MASTER...
          posts - 49, comments - 18, trackbacks - 0, articles - 1
            BlogJava :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

          SWT Layout--GridLayout

          Posted on 2006-03-08 14:34 fortune 閱讀(1771) 評(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,如果沒(méi)有為它設(shè)置則系統(tǒng)會(huì)給他一個(gè)默認(rèn)的GridData!

          HorizontalAlignment and VerticalAlignment

          每個(gè)alignment域指定控件在它的格子單元內(nèi)水平/垂直怎樣對(duì)齊,他們是下面4個(gè)值中的一個(gè)

                    ·      BEGINNING(左對(duì)齊)·      CENTER(中間對(duì)齊)·      END右對(duì)齊·      FILL充滿格子

          缺省值為horizontalAlignment is BEGINNING , verticalAlignment is CENTER

          HorizontalIndent

          允許你將widget向右移動(dòng)指定的像素位

          GridData gridData = new GridData();

          gridData.horizontalIndent = 4;

          button.setLayoutData(gridData);

          HorizontalSpan and VerticalSpan

          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單元是沒(méi)有作用的

          GrabExcessHorizontalSpace and GrabExcessVerticalSpace

          當(dāng)用戶改變窗口大小時(shí),GrabExcessHorizontalSpace 和GrabExcessVerticalSpace指定該控件是否填充增大的空間

          WidthHint and HeightHint

          指定widget的大小(如果horizontalAlignment或verticalAlignment為FILL的時(shí)候就沒(méi)有意義了)

          GridData gridData = new GridData();

                 gridData.widthHint = 70;

                 gridData.heightHint = 40;

                 button5.setLayoutData(gridData);

          注:最好不要對(duì)大小硬編碼

           

          Style 常量

          描述

          FILL_HORIZONTAL

          擴(kuò)展單元來(lái)水平地充滿任何空余空間。

          HORIZONTAL_ALIGN_FILL

          FILL_VERTICAL

          擴(kuò)展單元來(lái)垂直地充滿任何空余空間。

          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指明了沒(méi)有最小寬度。

          SWT.DEFAULT

          heightHint

          行的最小高度。SWT.DEFAULT指明了沒(méi)有最小高度。

          SWT.DEFAULT

          horizontalIndent

          單元左側(cè)邊際與control之間的象素間隙數(shù)量。

          0

          horizontalSpan

          單元所覆蓋的網(wǎng)格的列的數(shù)目。

          1

          verticalSpan

          單元所覆蓋的網(wǎng)格的行的數(shù)目。

          1

           

          參考:http://www.eclipse.org/articles/Understanding%20Layouts/Understanding%20Layouts.htm

          主站蜘蛛池模板: 三穗县| 甘肃省| 新邵县| 富平县| 社旗县| 龙胜| 南川市| 乌鲁木齐市| 潍坊市| 邓州市| 海晏县| 彩票| 玉屏| 汉源县| 措美县| 乃东县| 广州市| 香格里拉县| 卓尼县| 武汉市| 萝北县| 白城市| 平定县| 四会市| 图们市| 朔州市| 咸丰县| 达日县| 博野县| 桂平市| 舟曲县| 赣榆县| 香港 | 新沂市| 韶关市| 个旧市| 鹤岗市| 闽侯县| 福鼎市| 廉江市| 广元市|