SWT常用組件


 SWT類所代表的事件常量:

事件類型常量

說明

SWT.Activate

當激活窗口時

SWT.Arm

菜單項被選中之前

SWT.Close

關閉窗口時

SWT.Collapse

折疊樹的節點時

SWT.Deactivate

窗口處於非激活狀態時

SWT.DefaultSelection

默認選中時

SWT.Deiconify

窗口不是最小化時

SWT.Dispose

釋放資源時

SWT.DragDetect

拖動控件時

SWT.Expand

展開樹節點時

SWT.FocusIn

控件獲得焦點時

SWT.FocusOut

控件失去焦點時

SWT.HardKeyDown

硬件按鍵按下時,例如Pocket PC

SWT.HardKeyUp

硬件按鍵抬起時,例如Pocket PC

SWT.Help

按下幫助鍵時

SWT.Hide

隱藏控件時

SWT.Iconify

窗口最小化時

SWT.KeyDown

按下按鍵時

SWT.KeyUp

抬起按鈕時

SWT.MenuDetect

選中菜單時

SWT.Modify

文本修改時

SWT.MouseDoubleClick

雙擊鼠標時

SWT.MouseDown

鼠標按下時

SWT.MouseEnter

鼠標進入時

SWT.MouseExit

鼠標離開時

SWT.MouseHover

鼠標在控件區域上時

SWT.MouseMove

鼠標移動時

SWT.MouseUp

鼠標抬起時

SWT.Move

移動控件時

SWT.None

無類型事件

SWT.Paint

繪制控件時

SWT.Resize

重新設置控件大小時

SWT.Selection

選中控件時

SWT.Show

顯示控件時

SWT.Traverse

使用Tab鍵切換時

SWT.Verify

文本進行修改時

 

 

 

 

JAVA.SWT/JFace:

按鍵與其對應的常量表、KeyEvent事件比較、VerifyEvent事件比較

按鍵與其對應的常量表:

按鍵

keyCode常量

方向鍵下

SWT.ARROW_DOWN

方向鍵上

SWT.ARROW_UP

方向鍵左

SWT.ARROW_LEFT

方向鍵右

SWT.ARROW_RIGHT

Alt鍵

SWT.ALT

空格鍵

SWT.BS

Enter鍵

SWT.CR

Ctrl鍵

SWT.CTRL

End鍵

SWT.END

Esc鍵

SWT.ESC

F1~F12鍵

SWT.F1~SWT.F12

Home鍵

SWT.HOME

Insert鍵

SWT.INSERT

Page Down下翻頁鍵

SWT.PAGE_DOWN

Page Up上翻頁鍵

SWT.PAGE_UP

Shift鍵

SWT.SHIFT

Tab鍵

SWT.TAB

換行鍵

SWT.LF


KeyEvent事件比較:

示例描述

各屬性的值

說明

按下A鍵

character='a' keyCode=97 stateMask=0

97表示鍵盤上的a鍵。當要輸入大寫字母A時,需要使用Shift鍵,所以這時stateMask的值為SWT.SHIFT

按下A鍵同時按下Shift鍵

character='A' keyCode=97 stateMask=SWT.SHIFT

按下F1鍵

character='\0' keyCode=SWT.F1 stateMask=0

F1鍵不表示任何字符,所以character為\0

按下F1鍵同時按下Ctrl鍵

character='\0' keyCode=SWT.F1 stateMask=SWT.CTRL

同時按下了輔助鍵,所以stateMask值為SWT.CTRL



 

 

 

 

 

 

 

VerifyEvent事件比較:

文本框的初始值

示例描述

改變字符后文本框的值

各屬性的值

說明

"abcd"

字符后輸入字符e

"abcde"

character='e' keyCode=101 stateMask=0 doit=true start=4 end=4 text=e

插入字符時start 和 end的值相等,記錄的都是插入字符所在的位置

"abcd"

從剪貼板中粘貼"abcd"

"abcdabcd"

character='\0' keyCode=0 stateMask=0 doit=true start=4 end=4 text=abcd

"abcd"

刪除字符c

"abd"

character=' ' keyCode=8 stateMask=0 doit=true start=2 end=3 text=

刪除字符時,text的值為空,start記錄了刪除字符的起始位置,end記錄了刪除字符的結束位置

"abcd"

選擇cd字符后按Delete鍵

"ab"

character=' ' keyCode=8 stateMask=0 doit=true start=2 end=4 text=

 

SWT類所代表的事件常量:

事件類型常量

說明

SWT.Activate

當激活窗口時

SWT.Arm

菜單項被選中之前

SWT.Close

關閉窗口時

SWT.Collapse

折疊樹的節點時

SWT.Deactivate

窗口處於非激活狀態時

SWT.DefaultSelection

默認選中時

SWT.Deiconify

窗口不是最小化時

SWT.Dispose

釋放資源時

SWT.DragDetect

拖動控件時

SWT.Expand

展開樹節點時

SWT.FocusIn

控件獲得焦點時

SWT.FocusOut

控件失去焦點時

SWT.HardKeyDown

硬件按鍵按下時,例如Pocket PC

SWT.HardKeyUp

硬件按鍵抬起時,例如Pocket PC

SWT.Help

按下幫助鍵時

SWT.Hide

隱藏控件時

SWT.Iconify

窗口最小化時

SWT.KeyDown

按下按鍵時

SWT.KeyUp

抬起按鈕時

SWT.MenuDetect

選中菜單時

SWT.Modify

文本修改時

SWT.MouseDoubleClick

雙擊鼠標時

SWT.MouseDown

鼠標按下時

SWT.MouseEnter

鼠標進入時

SWT.MouseExit

鼠標離開時

SWT.MouseHover

鼠標在控件區域上時

SWT.MouseMove

鼠標移動時

SWT.MouseUp

鼠標抬起時

SWT.Move

移動控件時

SWT.None

無類型事件

SWT.Paint

繪制控件時

SWT.Resize

重新設置控件大小時

SWT.Selection

選中控件時

SWT.Show

顯示控件時

SWT.Traverse

使用Tab鍵切換時

SWT.Verify

文本進行修改時

SWT常見的事件

事件類型

監聽器和適配器

監聽器中的方法

說明

可注冊的GUI控件

ArmEvent

ArmListener

widgetArmed()

菜單項被選中之前觸發此事件

MenuItem

ControlEvent

ControlListener
ControlAdapter

controlMoved()

控件的位置改變時

Control,TableColumn, Tracker

controlResized()

控件的大小改變時

DisposeEvent

DisposeListener

widgetDisposed()

控件釋放時

Widget

FocusEvent

FocusListener
FocusAdapter

focusGained()

控件獲得焦點時

Control

focusLost()

控件失去焦點時

HelpEvent

HelpListener

helpRequested()

按F1鍵獲得幫助時觸發該事件

Control, Menu, MenuItem

KeyEvent

KeyListener
KeyAdapter

keyPressed()

按鍵按下時

Control

keyReleased()

按鍵釋放時

MenuEvent

MenuListener
MenuAdapter

menuHidder()

顯示菜單時

Menu

menuShown()

隱藏菜單時

ModifyEvent

ModifyListener

modifyText()

文本被修改時

Ccombo, Combo, Text, StyledText

MouseEvent

MouseListener
MouseAdapter

mouseDoubleClick()

鼠標雙擊時

Control

mouseDown()

鼠標按下時

mouseUp()

鼠標抬起時

MouseMoveEvent

MouseMoveListener

mouseMove()

鼠標移動時

Control

MouseTrackEvent

MouseTrackListener
MouseTrackAdapter

mouseEnter()

鼠標進入控件區域時

Control

mouseExit()

鼠標離開控件區域時

mouseHover()

鼠標在該控件區域時

PaintEvent

PaintListener

paintControl()

繪制控件時

Control

SelectionEvent

SelectionListener
SelectionAdapter

widgetSelected()

選中控件時,事件的發生根據不同的系統而異

Button, CCombo, Combo, CoolItem, CTabFolder, List, MenuItem, Sash, Scale, ScrollBar, Slider, StyledText, TabFolder, Table, TableCursor, TableColumn, TableTree, Text, TreeToolItem

widgetDefaultSelected()

默認選中控件時,事件的發生根據不同的系統而異

ShellEvent

ShellListener
ShellAdapter

shellActivated()

窗口被激活時

Shell

shellClosed()

窗口關閉時

shellDeactivated()

窗口變為非激活狀態時

shellDeiconified()

當窗口不是最小化時

shellIconified()

當窗口最小化時

TraverseEvent

TraverseListener

keyTraversed()

按下Tab鍵切換時

Control

TreeEvent

TreeListener
TreeAdapter

treeCollapsed()

折疊樹節點時

Tree, TableTree

treeExpanded()

展開樹節點時

VerifyEvent

VerifyListener

verifyText()

改變文本時觸發該事件

Text, StyledText



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()    失去焦點       


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM