FORTUNE

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

          SWT Layout--GridLayout

          Posted on 2006-03-08 14:34 fortune 閱讀(1766) 評論(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!

          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

          主站蜘蛛池模板: 青海省| 玉林市| 东丰县| 崇文区| 台江县| 镇江市| 射洪县| 若羌县| 河津市| 大冶市| 万山特区| 武清区| 新巴尔虎左旗| 平定县| 孟连| 灵台县| 汉源县| 云霄县| 鄂托克旗| 涿鹿县| 平罗县| 炎陵县| 灵璧县| 苏州市| 巩留县| 闽侯县| 尼勒克县| 文山县| 宁河县| 武汉市| 勐海县| 义乌市| 罗江县| 安国市| 肇庆市| 云龙县| 拉孜县| 新巴尔虎右旗| 东丽区| 互助| 沧州市|