SWT常用組件

來源:互聯網
上載者:User

標籤:des   color   io   os   使用   ar   for   資料   sp   

1按鈕組件(Button)

  (1)Button組件常用樣式

    SWT.PUSH按鈕

    SWT.CHECK多選按鈕

    SWT.RADIO選項按鈕

    SWT.ARROW箭頭按鈕

    SWT.NONE預設按鈕

    SWT.CENTER文字置中與SWT.NONE

    SWT.LEFT靠左對齊

    SWT.RIGHT靠右對齊

    SWT.BORDER深陷型按鈕

    SWT.FLAT平面型按鈕

    一個Button可以指定多個樣式,只要將指定的各個樣式用符號“|”串連起來即可

    Button bt=new Button(shell,SWT.CHECK|SWT.BORDER|SWT.LEFT);

    多選、深陷、靠左對齊

  (2)Button組件的常用方法

    setText(String string),設定組件的標籤文字

    setBounds(int x,int y,int width,int height);//設定組件的座標位置和大小

    setEnabled(Boolean enabled);設定組件是否可用,預設為true

    setFont(Font font);設定文字的字型

    setForeground(Color color);設定前景色彩

    setBackground(Color color);設定背景色

    setImage(Image image);設定顯示用的圖片

    setSelection(Boolean selected);設定是否選中,預設為false

    setToolTipText(String string);設定滑鼠停留在組件上是顯示的提示資訊

 

2標籤組件(Label)

  (1)Label常見式樣

    SWT.CENTER  置中

    SWT.RIGHT  靠右對齊

    SWT.LEFT  靠左對齊

    SWT.NONE  預設樣式

    SWT.WRAP  自動換行

    SWT.BORDER  深陷型

    SWT.SEPARATOR  分欄符號,預設為豎線分欄符號

    HORIZONTAL  橫線分欄符號

 

3文字框組件(Text)

  (1)Text常見式樣

    SWT.NONE  預設式樣

    SWT.CENTER

    SWT.RIGHT

    SWT.LEFT

    SWT.MULTI  可以輸入多行,需斷行符號換行

    SWT.WRAP  可以輸入多行,自動換行

    SWT.PASSWORD  密碼型,輸入字元顯示成“*”

    SWT.BORDER    深陷型

    SWT.V_SCROLL  垂直捲軸

    SWT.H_SCROLL  水平捲軸

 

4下拉框組件(Combo)

  (1)Combo常見樣式

    SWT.NONE    預設

    SWT.READ_ONLY  唯讀

    SWT.SIMPLE    無需單擊下拉框,列表會一直顯示

 

  (2)Combo下拉框常用方法

    add(String string)  在Combo上添加一項

    add(String string,int index)  在Combo的第index(從0開始)項後插入一項

    deselectAll()    使Combo組件中的當前選項為空白

    removeAll()      將Combo中的所有選項清空

    setItems(String[] items)  將數組中的各項依次加入到Combo中

    select(int index)  將Combo的第index+1項設定為當前選擇項

 

5列表框組件(List)

  (1)List常見樣式

    SWT.NONE    預設樣式

    SWT.V_SCROLL  帶垂直捲軸

    SWT.MULTI    允許複選

    SWT.SINGLE    允許單選

 

  (2)常用方法

    List和Combo組件的方法是一樣的,但由於List可選擇多項,而Combo只能選擇一項

  ,所以List沒有getText()方法,List的取值使用getSelection(),返回一個String

  數組。

 

6菜單(Menu,MenuItem)

    菜單(Menu、MenuItem)是常用的SWT組件,Menu是一個功能表列,同時也是一個容器

  ,可以容納功能表項目(MenuItem)

  (1)Menu樣式

    SWT.BAR    功能表列,用於主菜單

    SWT.DROP_DOWN  下拉式功能表,用於子功能表

    SWT.POP_UP    滑鼠右鍵快顯功能表

  (2)MenuItem式樣

    SWT.CASCADE    有子功能表的功能表項目

    SWT.CHECK    選中後前面顯示一個小勾

    SWT.PUSH    普通型菜單

    SWT.RADIO    選中後前面顯示一個圓點

    SWT.SEPARATOR  分隔字元

  (3)建立菜單一般步驟

    ①首先建立一個功能表列,需要用到SWT.BAR屬性

      Menu mainMunu=new Menu(shell,SWT.BAR);

    ②在表單中指定需要顯示的功能表列

      shell.setMenuBar(mainMenu);

    ③建立頂級功能表項目,需要使用SWT.CASCADE屬性

      MenuItem fileItem=new MenuItem(mainMenu,SWT.CASCADE);

      fileItem.setText("file&F");

    ④建立與頂級功能表項目相關的下拉式菜單

      Menu fileMenu=new Menu(shell,SWT.DROP_DOWN);

    ⑤將頂級功能表項目與下拉式功能表關聯

      fileItem.setMenu(fileMenu);

    二級菜單的建立只需要重複③~⑤即可

 

容器類

1面板(Composite)

  (1)Composite常用方法

    getLayout()  獲得布局管理器

    getLayoutData()    得到布局資料

    getParent()    得到容納該容器的父容器

    getShell()    得到容納該容器的Shell

    layout()    將容器上的組件重新布局,相當於重新整理

 

 

2群組方塊(Group)

    Group是Composite的子類,所以兩者用法基本相同。主要區別是Group顯示有一個方框,且方

  框線上還可以顯示解說文字

 

3選項卡(TabFolder、TabItem)

    選項卡包括一個選項卡(TabFolder類)和一個選項頁(TabItem類),TabFolder是容器,可

  以容納其它容器和組件,但TabItem不是容器,可以把它看成是一個選項標籤,TabFolder通過

  TabItem來對其中的組件進行控制。每一個TabItem用setControl()來控制一個介面組件。

 

布局管理器

1充滿式布局(FillLayout)

    FillLayout是最簡單的布局管理器,它把組件按一行或一列充滿整個容器,並強制組件的大小一致。

  一般組件高度和最高組件相同,寬度與最寬組件相同。FillLayout不能折行,不能設定邊界距離和間距。

  如果容器中只有一個組件,則該組件會充滿整個容器。

  (1)構造方法

    FillLayout()  建立按一行充滿容器的對象。

    FillLayout(int type)  建立按指定類型充滿容器的對象,type有:SWT.HORIZONTAL(行)

      SWT.VERTICAL(列)

  (2)常用屬性

    int type 指定組件充滿容器的類型

      FillLayout.type=SWT.VERTICAL 或 SWT.HORIZONTAL;

 

2行式布局(RowLayout)

    RowLayout可以是組件折行顯示,可以設定邊界距離和間距。另外,還可以對每個組件通過setLayoutData()

  方法設定RowData對象。RowData用來設定組件大小。

  (1)構造方法

    RowLayout()    建立按行放置組件的對象

    RowLayout(int type)  建立按指定類型放置組件的對象。type:SWT.HORIZONTAL  SWT.VERTICAL

  (2)常用屬性

    int marginWidth    組件距容器邊緣的寬度(像素),預設為0

    int marginHeight  組件距容器邊緣的高度(像素),預設為0

    int marginTop    組件距容器上邊緣的距離(像素),預設為3

    int marginBottom  組件距容器下邊緣的距離(像素),預設為3

    int spacing      組件之間的距離,預設值為3

    boolean justify    如果該屬性為true,則組件間的距離隨容器的展開而變大,預設值為false

    boolean wrap    如果該屬性為true,當空間不足時會自動折行,預設為true

    boolean pack    如果該屬性為true,組件大小為設定值;如果為false,則強制組件大小相同

              預設為true

    int tyep      SWT.HORIZONTAL(行)  SWT.VERTICAL(列)

  (2)RowData類

    RowData稱為RowLayout的布局資料類,可用於改變容器中組件外觀形狀,其構造方法為

      RowData(int width,int height)

 

3網格式布局(GridLayout)

    GridLayout是實用而且功能強大的標準布局,也是較為複雜的一種布局。這種布局把容器分成網格

  ,把組件放置在網格中。GridLayout有很多可配置屬性,和RowLayout一樣,也有專用的布局資料類

  GridData.GridLayout的構造方法無參數,但可以通過GridData和設定GridLayout屬性來設定組建的排列、

  形狀、和位置。

  (1)GridLayout屬性

    int numColumn    設定容器的列數,組件從左至右按列放置,當組件數大於列數時,下一個組件

              將自動添加到新的一行

    boolean makeColumnsEqualWidth  強制使列都具有相同的寬度,預設為false

    int marginWidth    設定組件與容器邊緣的水平距離,預設值為5

    int marginHeight  設定組件與容器邊緣的垂直高度,預設值為5

    int horizontalSpacing  設定列與列之間的間距,預設為5

    int verticalSpacing    設定行與行之間的間隔,預設為5

 

  (2)布局資料類(GridData類)

    GridData是GridLayout專用的布局資料類,用GridData可以構建很多複雜的布局方式。

    ①構造方法

      GridData()  建立一個屬性值為預設值的對象

      GridData(int type)

    ②GridData常用類型

      GridData.FILL  通常與對象屬性horizontalAlignment和verticalAlignment配合使用,充滿對象

              屬性指定空間。

      GridData.FILL_HORIZONTAL    水平充滿,

      GridData.FILL_VERTICAL      垂直充滿

      GridData.FILL_BOTH        雙向充滿

      GridData.HORIZONTAL_ALIGN_BEGINNING    水平靠在對齊

      GridData.HORIZONTAL_ALIGN_END      水平靠右對齊

      GridData.HORIZONTAL_ALIGN_CENTER    水平置中對齊

    ③GridData常有對象屬性如下:

      int horizontalSpan  設定組件佔用的列數,預設為1

      int verticalSpan  設定組件佔用的行數,預設為1

      horizontalAlignment  設定組件對齊為水平方向

      verticalAlignment  設定組件對齊為垂直方向

      grabExcessHorizontalSpace  搶佔額外水平空間

      grabExcessVerticalSpace    搶佔額外垂直空間

        horizontalAlignment和verticalAlignment可以取以下值:

      GEGINNING  開始(水平對齊時居左,垂直對齊時居上)

      CENTER    置中,預設

      END      結束(水平對齊時居右,垂直對齊時居下)

      FILL    充滿

 

4表格式布局(FormLayout)

    FormLayout是一種非常靈活、精確的布局方式,FormData使其專用的布局資料類。

  此外,還增加了一個FormAttachment類。FormAttachment定義了組件的四邊與父容器

  (Shell、Composite)的邊距,為保證組件在父容器中的相對位置不變,FormAttachment

  類用不同的構造方法來實現組件的定位,用FormData和FormAttachment配合,可以建立複雜

  的介面,而且當主表單大小改變時,組件的相對位置能保持相對不變。

  (1)FormLayout建構函式

    FormLayout();

  (2)FormLayout的屬性

    int marginWidth    //設定組件與容器邊緣的水平距離,預設值為0

    int marginHeihgt  //設定組件與容器邊緣的垂直距離,預設為0

  (3)FormData類

    ①FormData的構造方法

      FormData()

      FormData(int width,int height)設定組件的寬度和高度

    ②FormData的屬性

      width  設定組件的寬度

      height  設定組件的高度

      top 和 FormAttachment配合設定組件底部和父容器底部的邊距

      left 和 FormAttachment配合設定組件右邊和父容器右邊的邊框

          如果FormData中的width和height設定的寬度和高度與FormAttachment設定的約束

      發生衝突,則按照FormAttachment設定,width和height的設定值就不起作用了。

  (3)FormAttachment類

      Attachment的含義是附著、粘貼。FormAttachment類就是用來指定組件在父容器中粘貼的

    位置。FormAttachment計算群組件粘貼位置和組件大小的方法是依據下面的運算式:

      y=ax+b

    ①FormatAttachment構造方法

      FormatAttachment()組件緊貼父容器的左邊緣和上邊緣,如果父容器設定了FormLayout屬

    性marginWidth、marginHeight,則距父容器的上邊緣和左邊緣為其值。

      FormatAttachment(Control control)以指定組件control為參照物

      FormatAttachment(Control control,int offset)以指定組件control為參照物,相對指定

                            組件位移量為offset

      FormatAttachment(Control control,int offset,int alignment)對齊為alignment

        SWT.TOP  SWT.BOTTOM  SWT.LEFT  SWT.RIGHT  SWT.CENTER

      FormAttachment(int m,int n,int offset)以組件相對與父容器寬度或高度的百分比(即斜率a)來給

        組件定位,m為a的分子,n為分母,offset為位移量

      FormAttachment(int m,int offer)  n預設為100

      FormAttachment(int m) n預設為100,offset預設為0

 

 

SWT的常用事件

    所有事件、監聽器和適配器都放在包org.eclipse.swt.events中。

  (1)SWT中常用事件如下:

    ①addMouseListener滑鼠監聽器

      mouseDown()

      mouseUP()

      mouseDoubleClick()

    ②addKeyListener按鍵監聽器

      keyPressed()

      keyReleased()

    ③addSelectionListener組件選擇監聽器

      widgetSelected()

    ④addFocusListener焦點監聽器

      focusGained()   得到焦點

      focusLost()    失去焦點       

SWT常用組件

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.