Jusqu'ici, nous avons utilisé le terme widget sans définition formelle. Dans la hiérarchie de classes SWT, un widget est la classe abstraite de tout objet de l'interface utilisateur pouvant être placé dans un autre widget. Un contrôle est un widget auquel est généralement associé une représentation marquée par une poignée de fenêtre dans la plateforme sous-jacente.
Nous avons tendance à utiliser indifféremment les termes widget et contrôle. Bien que la distinction soit importante dans l'implémentation de SWT, nous ne mettrons pas l'accent sur cette différence du point de vue d'une application. Si vous parcourez la hiérarchie des widgets SWT, vous verrez qu'un contrôle est un élément que vous créez et placez n'importe où, à votre gré, dans l'arborescence parent/enfant des widgets.Les widgets qui ne sont pas des contrôles sont généralement des objets de l'interface utilisateur plus spécialisés qui peuvent être créés uniquement pour certains types de parents.
Les références des API SWT et les exemples regorgent d'informations sur les différents types de contrôles et leur utilisation. Le package org.eclipse.swt.widgets définit le principal ensemble de widgets dans SWT. Le tableau ci-dessous résume les types concrets de contrôles fournis dans ce package et leur objectif. (Les classes abstraites sont éliminées de la liste.)
Widget
|
Objectif
|
Styles
|
Evénements |
---|---|---|---|
Contrôle sélectionnable qui envoie une notification lorsqu'il est sélectionné et/ou relâché. |
BORDER, CHECK, PUSH,
RADIO, TOGGLE, FLAT, LEFT, RIGHT, CENTER, ARROW (avec UP, DOWN)
|
Dispose, Control*, Selection | |
Contrôle composite qui fournit une surface pour le traçage de graphiques arbitraires. Souvent utilisé pour implémenter des contrôles personnalisés. |
BORDER, H_SCROLL, V_SCROLL,
NO_BACKGROUND, NO_FOCUS, NO_MERGE_PAINTS, NO_REDRAW_RESIZE, NO_RADIO_GROUP
|
Dispose, Control* | |
Curseur en forme de I, généralement utilisé comme point d'insertion de texte. |
|
Dispose | |
Contrôle sélectionnable qui permet à l'utilisateur de choisir une chaîne dans une liste de chaînes ou éventuellement, de saisir une nouvelle valeur dans une zone de texte éditable. Souvent utilisé lorsqu'un espace réduit nécessite une présentation avec disparition instantanée de l'incrustation des chaînes disponibles plutôt que l'utilisation d'une boîte à liste de sélection. |
BORDER, DROP_DOWN, READ_ONLY,
SIMPLE
|
Dispose, Control*, DefaultSelection, Modify, Selection | |
Contrôle capable de contenir d'autres widgets. |
BORDER, H_SCROLL, V_SCROLL
|
Dispose, Control* | |
Contrôle composite permettant aux utilisateurs de repositionner de façon dynamique les éléments "cool" contenus sur la barre. |
BORDER
|
Dispose, Control* | |
Objet de l'interface utilisateur sélectionnable représentant une zone de barre "cool" positionnable de façon dynamique. |
DROP_DOWN
|
Dispose | |
Contrôle composite regroupant d'autres widgets et les entourant d'une bordure gravée et/ou d'un libellé. |
BORDER, SHADOW_ETCHED_IN,
SHADOW_ETCHED_OUT, SHADOW_IN, SHADOW_OUT, SHADOW_NONE
|
Dispose, Control* | |
Contrôle non sélectionnable affichant une chaîne ou une image. |
BORDER, CENTER, LEFT, RIGHT,
WRAP, SEPARATOR (avec HORIZONTAL, SHADOW_IN, SHADOW_OUT,
SHADOW_NONE, VERTICAL)
|
Dispose, Control* | |
Contrôle sélectionnable qui permet à l'utilisateur de choisir une ou des chaîne(s) dans une liste de chaînes. |
BORDER, H_SCROLL, V_SCROLL,
SINGLE, MULTI
|
Dispose, Control*, Selection, DefaultSelection | |
Objet de l'interface utilisateur contenant des options de menu. |
BAR, DROP_DOWN, NO_RADIO_GROUP, POP_UP
|
Dispose, Help, Hide, Show | |
MenuItem | Objet de l'interface utilisateur sélectionnable représentant une option de menu. | CHECK, CASCADE, PUSH, RADIO, SEPARATOR | Dispose, Arm, Help, Selection |
Contrôle non sélectionnable affichant à l'utilisateur la progression d'une opération, généralement sous la forme d'une barre. |
BORDER, INDETERMINATE, SMOOTH, HORIZONTAL,
VERTICAL
|
Dispose, Control* | |
Contrôle sélectionnable qui permet à l'utilisateur de faire glisser un contour élastique du bouton de réglage dans la fenêtre mère. Utilisé pour permettre aux utilisateurs de redimensionner les widgets enfants en repositionnant leur ligne de séparation. |
BORDER, HORIZONTAL, VERTICAL
|
Dispose, Control*, Selection | |
Contrôle sélectionnable représentant des intervalles de valeurs numériques. |
BORDER, HORIZONTAL, VERTICAL
|
Dispose, Control*, Selection | |
ScrollBar | Contrôle sélectionnable représentant des intervalles de valeurs numériques positives. Utilisé dans un composite doté des styles V_SCROLL et/ou H_SCROLL. | HORIZONTAL, VERTICAL | Dispose, Selection |
Fenêtre gérée par le gestionnaire de fenêtres du système d'exploitation. Les shells peuvent avoir comme parent : un affichage (shells de niveau supérieur) ou un autre shell (shells secondaires). |
BORDER, H_SCROLL, V_SCROLL,
CLOSE, MIN, MAX, NO_TRIM, RESIZE, TITLE (voir aussi SHELL_TRIM,
DIALOG_TRIM)
|
Dispose, Control*, Activate, Close, Deactivate, Deiconify, Iconify | |
Contrôle sélectionnable représentant des intervalles de valeurs numériques. Une règle se distingue d'une échelle en présentant un curseur qui peut être déplacé afin d'ajuster la valeur courante dans la plage proposée. |
BORDER, HORIZONTAL, VERTICAL
|
Dispose, Control*, Selection | |
Contrôle composite qui regroupe des pages pouvant être sélectionnées par l'utilisateur à l'aide d'onglets libellés. |
BORDER
|
Dispose, Control*, Selection | |
TabItem | Objet de l'interface utilisateur sélectionnable, correspondant à un onglet pour une page dans un dossier à onglets. | Dispose | |
Contrôle sélectionnable qui affiche une liste d'éléments de tableau pouvant être sélectionnés par l'utilisateur. Les éléments sont présentés en lignes qui affichent plusieurs colonnes représentant différents aspects des éléments. |
BORDER, H_SCROLL, V_SCROLL,
SINGLE, MULTI, CHECK, FULL_SELECTION, HIDE_SELECTION
|
Dispose, Control*, Selection, DefaultSelection | |
TableColumn | Objet de l'interface utilisateur sélectionnable représentant une colonne dans un tableau. | LEFT, RIGHT, CENTER | Dispose, Move, Resize, Selection |
TableItem | Objet de l'interface utilisateur sélectionnable représentant un élément dans un tableau. | Dispose | |
Contrôle éditable permettant à l'utilisateur d'y saisir du texte. |
BORDER, SINGLE, READ_ONLY, LEFT, CENTER,
RIGHT, WRAP, MULTI (avec H_SCROLL, V_SCROLL)
|
Dispose, Control*, DefaultSelection, Modify, Verify | |
Contrôle composite supportant la présentation d'éléments de barre d'outils sélectionnables. |
BORDER, FLAT, WRAP, RIGHT, SHADOW_OUT
HORIZONTAL, VERTICAL
|
Dispose, Control*, | |
ToolItem | Objet de l'interface utilisateur sélectionnable représentant un élément dans une barre d'outils. | PUSH, CHECK, RADIO, SEPARATOR, DROP_DOWN | Dispose, Selection |
Objet de l'interface utilisateur implémentant des rectangles élastiques. |
LEFT, RIGHT, UP, DOWN, RESIZE
|
Dispose, Move, Resize | |
Contrôle sélectionnable qui affiche une liste hiérarchique d'éléments d'arborescence pouvant être sélectionnés par l'utilisateur. |
BORDER, H_SCROLL, V_SCROLL,
SINGLE, MULTI, CHECK
|
Dispose, Control*, Selection, DefaultSelection, Collapse, Expand | |
TreeItem | Objet de l'interface utilisateur sélectionnable représentant une hiérarchie d'éléments dans une arborescence. | Dispose |
Contrôle* = événements hérités d'un contrôle : FocusIn, FocusOut, Help, KeyDown, KeyUp, MouseDoubleClick, MouseDown, MouseEnter, MouseExit, MouseHover, MouseUp, MouseMove, Move, Paint, Resize