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