Hasta ahora hemos utilizado el término widget sin una definición formal. En la jerarquía de clases de SWT, llamamos Widget a la clase abstracta de cualquier objeto de la UI que pueda colocarse dentro de otro widget. Un Control es un widget que suele tener una representación equivalente, indicada mediante un handle de ventana de OS, en la plataforma subyacente.
Se suele confundir el significado de los términos widget y control. A pesar de los problemas que comporta esta confusión en la implementación de SWT, no merece la pena centrarse en ella desde el punto de vista de una aplicación. Si revisa la jerarquía de widgets de SWT, verá que un Control es algo que puede crear y colocar en cualquier lugar del árbol de padres/hijos de widgets. Los widgets que no son controles suelen ser objetos de UI más especializados, que solo se pueden crear para ciertos tipos de padres.
Encontrará información exhaustiva sobre los distintos tipos de controles y de cómo utilizarlos en el manual Consulta de las API de SWT y en los ejemplos. El paquete org.eclipse.swt.widgets define el conjunto principal de widgets en SWT. La tabla siguiente muestra un resumen de los tipos de controles concretos que se proporcionan en este paquete y su finalidad. (Las clases abstractas se han eliminado de esta lista).
Widget
|
Finalidad
|
Estilos
|
Eventos |
---|---|---|---|
Control seleccionable que emite una notificación cuando se pulsa y/o se suelta. |
BORDER, CHECK, PUSH,
RADIO, TOGGLE, FLAT, LEFT, RIGHT, CENTER, ARROW (con UP, DOWN)
|
Dispose, Control*, Selection | |
Control de Composite que proporciona una superficie para dibujar gráficos arbitrarios. Suele utilizarse para implementar controles personalizados. |
BORDER, H_SCROLL, V_SCROLL,
NO_BACKGROUND, NO_FOCUS, NO_MERGE_PAINTS, NO_REDRAW_RESIZE, NO_RADIO_GROUP
|
Dispose, Control* | |
Un cursor en I que se suele utilizar como punto de inserción en el texto. |
|
Dispose | |
Control seleccionable que permite al usuario elegir una serie en una lista de series o bien, opcionalmente, escribir un valor nuevo en un campo de texto editable. Se suele utilizar cuando un espacio limitado exige una presentación desplegable de las series disponibles, en vez de utilizar un solo cuadro de lista de selección. |
BORDER, DROP_DOWN, READ_ONLY,
SIMPLE
|
Dispose, Control*, DefaultSelection, Modify, Selection | |
Control que puede contener otros widgets. |
BORDER, H_SCROLL, V_SCROLL
|
Dispose, Control* | |
Control de Composite que permite a los usuarios volver a colocar dinámicamente los elementos interesantes que hay en la barra. |
BORDER
|
Dispose, Control* | |
En la interfaz del usuario, objeto seleccionable que representa un área posicionable dinámicamente de una barra de elementos interesantes. |
DROP_DOWN
|
Dispose | |
Control de Composite que agrupa otros widgets y los rodea con un borde y/o una etiqueta grabados. |
BORDER, SHADOW_ETCHED_IN,
SHADOW_ETCHED_OUT, SHADOW_IN, SHADOW_OUT, SHADOW_NONE
|
Dispose, Control* | |
Control no seleccionable que visualiza una serie o una imagen. |
BORDER, CENTER, LEFT, RIGHT,
WRAP, SEPARATOR (con HORIZONTAL, SHADOW_IN, SHADOW_OUT, SHADOW_NONE, VERTICAL)
|
Dispose, Control* | |
Control seleccionable que permite al usuario elegir una o más series en una lista de series. |
BORDER, H_SCROLL, V_SCROLL,
SINGLE, MULTI
|
Dispose, Control*, Selection, DefaultSelection | |
En la interfaz del usuario, objeto que contiene elementos de menú. |
BAR, DROP_DOWN, NO_RADIO_GROUP, POP_UP
|
Dispose, Help, Hide, Show | |
MenuItem | En la interfaz del usuario, objeto seleccionable que representa un elemento de un menú. | CHECK, CASCADE, PUSH, RADIO, SEPARATOR | Dispose, Arm, Help, Selection |
Control no seleccionable que muestra el progreso al usuario, habitualmente en forma de un gráfico de barra. |
BORDER, INDETERMINATE, SMOOTH, HORIZONTAL,
VERTICAL
|
Dispose, Control* | |
Control seleccionable que permite al usuario arrastrar un contorno elástico del marco de la ventana padre. Se utiliza para redimensionar los widgets hijo cambiando la posición de su línea divisoria. |
BORDER, HORIZONTAL, VERTICAL
|
Dispose, Control*, Selection | |
Control seleccionable que representa un rango de valores numéricos. |
BORDER, HORIZONTAL, VERTICAL
|
Dispose, Control*, Selection | |
ScrollBar | Control seleccionable que representa un rango de valores numéricos positivos. Se utiliza en un objeto Composite que tenga los estilos V_SCROLL y/o H_SCROLL. | HORIZONTAL, VERTICAL | Dispose, Selection |
Ventana gestionada por el gestor de ventanas de OS. Las shells pueden ser hijos de una clase Display (shells de nivel superior) o de otra shell (shells secundarias). |
BORDER, H_SCROLL, V_SCROLL,
CLOSE, MIN, MAX, NO_TRIM, RESIZE, TITLE (ver también SHELL_TRIM, DIALOG_TRIM)
|
Dispose, Control*, Activate, Close, Deactivate, Deiconify, Iconify | |
Control seleccionable que representa un rango de valores numéricos. Un graduador se diferencia de una escala en que cuenta con un mecanismo arrastrable que se puede ajustar al valor actual en el rango. |
BORDER, HORIZONTAL, VERTICAL
|
Dispose, Control*, Selection | |
Control de Composite que agrupa las páginas que el usuario puede seleccionar mediante pestañas etiquetadas. |
BORDER
|
Dispose, Control*, Selection | |
TabItem | El la interfaz del usuario, objeto seleccionable que corresponde a una pestaña de una página en una carpeta con pestañas. | Dispose | |
Control seleccionable que muestra una lista de elementos de tabla que el usuario puede seleccionar. Los elementos se presentan en filas que visualizan múltiples columnas para representar los diferentes aspectos de los elementos. |
BORDER, H_SCROLL, V_SCROLL,
SINGLE, MULTI, CHECK, FULL_SELECTION, HIDE_SELECTION
|
Dispose, Control*, Selection, DefaultSelection | |
TableColumn | En la interfaz del usuario, objeto seleccionable que representa una columna de una tabla. | LEFT, RIGHT, CENTER | Dispose, Move, Resize, Selection |
TableItem | En la interfaz del usuario, objeto seleccionable que representa un elemento de una tabla. | Dispose | |
Control editable que permite al usuario escribir texto en él. |
BORDER, SINGLE, READ_ONLY, LEFT, CENTER, RIGHT, WRAP, MULTI (con H_SCROLL, V_SCROLL)
|
Dispose, Control*, DefaultSelection, Modify, Verify | |
Control de Composite que soporta el diseño de elementos seleccionables de la barra de herramientas. |
BORDER, FLAT, WRAP, RIGHT, SHADOW_OUT
HORIZONTAL, VERTICAL
|
Dispose, Control*, | |
ToolItem | En la interfaz del usuario, objeto seleccionable que representa un elemento de una barra de herramientas. | PUSH, CHECK, RADIO, SEPARATOR, DROP_DOWN | Dispose, Selection |
En la interfaz del usuario, objeto que implementa rectángulos que pueden estirarse. |
LEFT, RIGHT, UP, DOWN, RESIZE
|
Dispose, Move, Resize | |
Control seleccionable que muestra una lista jerárquica de elementos de árbol que el usuario puede seleccionar. |
BORDER, H_SCROLL, V_SCROLL,
SINGLE, MULTI, CHECK
|
Dispose, Control*, Selection, DefaultSelection, Collapse, Expand | |
TreeItem | En la interfaz del usuario, objeto seleccionable que representa una jerarquía de los elementos de un árbol. | Dispose |
Control* = Eventos heredados de Control: FocusIn, FocusOut, Help, KeyDown, KeyUp, MouseDoubleClick, MouseDown, MouseEnter, MouseExit, MouseHover, MouseUp, MouseMove, Move, Paint, Resize