到目前為止,我們已使用過小組件這個術語,但都沒有一個正式的定義。 在 SWT 類別階層中,小組件 是代表可置入另一小組件內的任何 UI 物件之抽象類別。 控制項 是一個小組件,通常在基礎的平台中有對應的表示法(以 OS 視窗 handle 表示)。
我們傾向於使用可交換的詞彙「小組件」和「控制項」。雖然在 SWT 實作方式不太 好區別,但就應用程式的檢視層面而言,我們不強調這個差異。如果您檢視 SWT 小 組件階層,您會看到控制項是您可以建立並且放置到小組件母項/子項樹狀結 構中任何位置的某個項目。小組件不是控制項,通常是只能針對某些母項類型建立的 一些更專用的 UI 物件。
SWT API 參 照和範例是有關不同種類控制項及其用法的完整資訊。 org.eclipse.swt.widgets 套件定義 SWT 中的核心小組件集。下表彙總這個套件中提供的控制項具體類型及它 們的用途。(這個清單中略過了抽象類別。)
小組件
|
用途
|
樣式
|
事件 |
---|---|---|---|
當按下及/或放開時發出通知的可選取控制項。 |
BORDER、ARROW、CHECK、PUSH、RADIO、TOGGLE、FLAT
、LEFT、RIGHT、CENTER
|
Dispose、Control*、Selection | |
提供繪製任意圖形的版面之複合式控制項。通常用來實作自訂控制 項。 |
BORDER、H_SCROLL、V_SCROLL、NO_BACKGROUND、
NO_FOCUS、NO_MERGE_PAINTS、NO_REDRAW_RESIZE
|
Dispose、Control* | |
通常作為文字插入點的 I 型。 |
|
Dispose | |
可選取控制項,可讓使用者從字串清單中選擇字串,或選用性地將 新值鍵入可編輯文字欄位中。常用於受限空間需要 pop-down 呈現方式的可用字串, 而非使用單選清單框。 |
BORDER、DROP_DOWN、READ_ONLY、SIMPLE
|
Dispose、Control*、DefaultSelection、Modify、Selection | |
能夠包含其他小組件的控制項。 |
BORDER、H_SCROLL、V_SCROLL
|
Dispose、Control* | |
複合式控制項,可讓使用者動態重新定位功能列所包含的酷連 結。 |
BORDER
|
Dispose、Control* | |
代表酷功能列的一個可動態重新定位區域的可選取使用者介面物件。 |
|
Dispose | |
複合式控制項,將其他小組件分組並以蝕刻邊框及/和標籤圍 住它們。 |
BORDER、SHADOW_ETCHED_IN、SHADOW_ETCHED_OUT、
SHADOW_IN、SHADOW_OUT、SHADOW_NONE
|
Dispose、Control* | |
顯示字串或影像的不可選取控制項。 |
BORDER、CENTER、LEFT、RIGHT、WRAP、SEPARATOR(
以及 HORIZONTAL、SHADOW_IN、SHADOW_OUT、VERTICAL)
|
Dispose、Control* | |
可選取控制項,可讓使用者從字串清單中選擇一或多個字串。 |
BORDER、H_SCROLL、V_SCROLL、SINGLE、MULTI
|
Dispose、Control*、Selection、DefaultSelection | |
含有功能表項目的使用者介面物件。 |
BAR、DROP_DOWN、POP_UP
|
Dispose、Help、Hide、Show | |
MenuItem | 代表功能表中項目的可選取使用者介面物件。 | CHECK、CASCADE、PUSH、RADIO、SEPARATOR | Dispose、Arm、Help、Selection |
通常以長條圖形式顯示使用者進度的不可選取控制項。 |
BORDER、SMOOTH、HORIZONTAL、VERTICAL
|
Dispose、Control* | |
可選取控制項,可讓使用者拖曳母視窗內窗框的伸縮邊。 用於讓使用者藉由重新定位子項小組件的分割線來調整子項小組件大小。 |
BORDER、HORIZONTAL、VERTICAL
|
Dispose、Control*、Selection | |
代表數值範圍的可選取控制項。 |
BORDER、HORIZONTAL、VERTICAL
|
Dispose、Control*、Selection | |
ScrollBar | 代表正數數值範圍的可選取控制項。使用於具有 V_SCROLL 及/或 H_SCROLL 樣式的組合中。 | HORIZONTAL、VERTICAL | Dispose、Selection |
由 OS 視窗管理程式管理的視窗。Shell 的根源可以是 Display( 最上層 Shell)或另一個 Shell(第二層 Shell)。 |
BORDER、H_SCROLL、V_SCROLL、 CLOSE、MIN、MAX、
NO_TRIM、RESIZE、TITLE(另請參閱 SHELL_TRIM、DIALOG_TRIM)
|
Dispose、Control*、Activate、Close、Deactivate、Deiconify 、Iconify | |
代表數值範圍的可選取控制項。 滑塊藉由可依範圍調整現行值的可拖曳拇指來與刻度區別。 |
BORDER、HORIZONTAL、VERTICAL
|
Dispose、Control*、Selection | |
複合式控制項,將使用者可使用含標籤的標籤選取的頁面加以分組。 |
BORDER
|
Dispose、Control*、Selection | |
TabItem | 對應於標籤資料夾中頁面的標籤之可選取使用者介面物件。 | Dispose | |
顯示可供使用者選取的表格項目清單之可選取控制項。 項目在許多列中顯示,這些列顯示多個代表不同形式項目的直欄。 |
BORDER、H_SCROLL、V_SCROLL、SINGLE、MULTI、CHECK
、FULL_SELECTION、HIDE_SELECTION
|
Dispose、Control*、Selection、DefaultSelection | |
TableColumn | 代表表格中直欄的可選取使用者介面物件。 | LEFT、RIGHT、CENTER | Dispose、Move、Resize、Selection |
TableItem | 代表表格中項目的可選取使用者介面物件。 | Dispose | |
可讓使用者將文字鍵入其中的可編輯控制項。 |
BORDER、H_SCROLL、V_SCROLL、MULTI、SINGLE、
READ_ONLY、WRAP
|
Dispose、Control*、DefaultSelection、Modify、Verify | |
支援可選取工具列項目佈置的複合式控制項。 |
BORDER、FLAT、WRAP、RIGHT、HORIZONTAL、
VERTICAL
|
Dispose、Control* | |
ToolItem | 代表工具列中項目的可選取使用者介面物件。 | PUSH、CHECK、RADIO、SEPARATOR、DROP_DOWN | Dispose、Selection |
實作伸縮矩形的使用者介面物件。 |
|
Dispose、Move | |
顯示可供使用者選取的樹狀結構項目階層式清單之可選取控制項。 |
BORDER、H_SCROLL、V_SCROLL、SINGLE、MULTI、
CHECK
|
Dispose、Control*、Selection、DefaultSelection、Collapse、 Expand | |
TreeItem | 代表樹狀結構中樹狀結構項目階層的可選取使用者介面物件。 | Dispose |
Control* = 繼承自控制項的事件: FocusIn、FocusOut、Help、KeyDown 、KeyUp、MouseDoubleClick、MouseDown、MouseEnter、MouseExit、MouseHover、 MouseUp、MouseMove、Move、Paint、Resize