Até aqui, utilizamos o termo widget sem uma definição formal. Na hierarquia de classes do SWT, um Widget é a classe abstrata para qualquer objeto da UI que possa ser colocado dentro de outro widget.Um Controle é um widget que geralmente tem uma representação equivalente, denotada por um identificador de janela do S.O., na plataforma subjacente.
Costumamos utilizar os termos widget e controle de forma intercambiável. Embora a distinção seja importante na implementação do SWT, não nos centralizaremos nessa diferença do ponto de vista de um aplicativo. Se você rever a hierarquia de widgets do SWT, verá que um Controle é algo que você pode criar e colocar em qualquer lugar desejado na árvore de pai/filho do widget. Os widgets não são controles, são geralmente objetos da UI mais especializados que podem ser criados somente para determinados tipos de pais.
A Referência da API do SWT e os exemplos estão repletos de informações sobre os diferentes tipos de controle e a utilização deles. O pacote org.eclipse.swt.widgets define o conjunto de widgets núcleo no SWT.A tabela a seguir resume os tipos concretos de controles fornecidos nesse pacote e a finalidade deles. (As classes abstratas foram eliminadas dessa lista).
Widget
|
Propósito
|
Estilos
|
Eventos |
---|---|---|---|
Controle selecionável que emite notificação quando pressionado e/ou liberado. |
BORDER, CHECK, PUSH,
RADIO, TOGGLE, FLAT, LEFT, RIGHT, CENTER, ARROW (com UP, DOWN)
|
Dispose, Control*, Selection | |
Controle composto que fornece uma superfície para desenho de gráficos arbitrários. Muitas vezes utilizada para implementar controles personalizados. |
BORDER, H_SCROLL, V_SCROLL,
NO_BACKGROUND, NO_FOCUS, NO_MERGE_PAINTS, NO_REDRAW_RESIZE, NO_RADIO_GROUP
|
Dispose, Control* | |
Um cursor em forma de I que é geralmente utilizado como o ponto de inserção de texto. |
|
Dispose | |
Controle selecionável que permite ao usuário escolher uma cadeia na lista de cadeias ou, como opção, digitar um novo valor em um campo de texto editável. Muitas vezes utilizado quando o espaço limitado exige a apresentação de um pop-down de cadeias disponíveis, em vez de utilizar uma única caixa de lista de seleção. |
BORDER, DROP_DOWN, READ_ONLY,
SIMPLE
|
Dispose, Control*, DefaultSelection, Modify, Selection | |
Controle capaz de conter outros widgets. |
BORDER, H_SCROLL, V_SCROLL
|
Dispose, Control* | |
Controle composto que permite ao usuário fazer a reposição dinâmica de itens interessantes contidos na barra. |
BORDER
|
Dispose, Control* | |
Objeto selecionável da interface do usuário que representa uma área dinamicamente posicionável de uma barra interessante. |
DROP_DOWN
|
Dispose | |
Controle composto que agrupa outros widgets e fica em torno deles com uma moldura e/ou uma etiqueta gravada. |
BORDER, SHADOW_ETCHED_IN,
SHADOW_ETCHED_OUT, SHADOW_IN, SHADOW_OUT, SHADOW_NONE
|
Dispose, Control* | |
Controle não selecionável que exibe uma cadeia ou uma imagem. |
BORDER, CENTER, LEFT, RIGHT,
WRAP, SEPARATOR (com HORIZONTAL, SHADOW_IN, SHADOW_OUT, SHADOW_NONE, VERTICAL)
|
Dispose, Control* | |
Controle selecionável que permite ao usuário escolher uma cadeia ou cadeias em uma lista de cadeias. |
BORDER, H_SCROLL, V_SCROLL,
SINGLE, MULTI
|
Dispose, Control*, Selection, DefaultSelection | |
Objeto da interface do usuário que contém itens de menu. |
BAR, DROP_DOWN, NO_RADIO_GROUP, POP_UP
|
Dispose, Help, Hide, Show | |
MenuItem | Objeto selecionável da interface do usuário que representa um item em um menu. | CHECK, CASCADE, PUSH, RADIO, SEPARATOR | Dispose, Arm, Help, Selection |
Controle não selecionável que exibe o progresso para o usuário, geralmente na forma de um gráfico de barras. |
BORDER, INDETERMINATE, SMOOTH, HORIZONTAL,
VERTICAL
|
Dispose, Control* | |
Controle selecionável que permite ao usuário arrastar um outline flexível da faixa na janela principal. Utilizado para permitir que os usuários redimensionem widgets filho, reposicionando a linha divisória deles. |
BORDER,HORIZONTAL, VERTICAL
|
Dispose, Control*, Selection | |
Controle selecionável que representa um intervalo de valores numéricos. |
BORDER,HORIZONTAL, VERTICAL
|
Dispose, Control*, Selection | |
ScrollBar | Controle selecionável que representa um intervalo de valores numéricos positivos. Utilizado em um composto que tem os estilos V_SCROLL e/ou H_SCROLL. | HORIZONTAL, VERTICAL | Dispose, Selection |
Janela gerenciada pelo gerenciador de janelas do sistema operacional. Os shells podem ter um Display (shells de nível superior) ou outro shell (shells secundários) como pai. |
BORDER, H_SCROLL, V_SCROLL,
CLOSE, MIN, MAX, NO_TRIM, RESIZE, TITLE (consulte também SHELL_TRIM, DIALOG_TRIM)
|
Dispose, Control*, Activate, Close, Deactivate, Deiconify, Iconify | |
Controle selecionável que representa um intervalo de valores numéricos. Um slider (régua de controle) é diferente de um scale (escala) por fornecer uma aba arrastável que pode ajustar o valor atual ao longo do intervalo. |
BORDER,HORIZONTAL, VERTICAL
|
Dispose, Control*, Selection | |
Controle composto que agrupa páginas que podem ser selecionadas pelo usuário utilizando guias etiquetadas. |
BORDER
|
Dispose, Control*, Selection | |
TabItem | Objeto selecionável da interface do usuário que corresponde a uma guia de uma página em uma pasta de guias. | Dispose | |
Controle selecionável que exibe uma lista de itens da tabela que podem ser selecionados pelo usuário. Os itens são representados em linhas que exibem várias colunas representando aspectos diferentes dos itens. |
BORDER, H_SCROLL, V_SCROLL,
SINGLE, MULTI, CHECK, FULL_SELECTION, HIDE_SELECTION
|
Dispose, Control*, Selection, DefaultSelection | |
TableColumn | Objeto selecionável da interface do usuário que representa uma coluna em uma tabela. | LEFT, RIGHT, CENTER | Dispose, Move, Resize, Selection |
TableItem | Objeto selecionável da interface do usuário que representa um item em uma tabela. | Dispose | |
Controle editável que permite ao usuário digitar texto nele. |
BORDER, SINGLE, READ_ONLY, LEFT, CENTER, RIGHT, WRAP, MULTI (com H_SCROLL, V_SCROLL)
|
Dispose, Control*, DefaultSelection, Modify, Verify | |
Controle composto que suporta o layout de itens selecionáveis da barra de ferramentas. |
BORDER, FLAT, WRAP, RIGHT, SHADOW_OUT
HORIZONTAL, VERTICAL
|
Dispose, Control*, | |
ToolItem | Objeto selecionável da interface do usuário que representa um item na barra de ferramentas. | PUSH, CHECK, RADIO, SEPARATOR, DROP_DOWN | Dispose, Selection |
Objeto da interface do usuário que implementa retângulos flexíveis. |
LEFT, RIGHT, UP, DOWN, RESIZE
|
Dispose, Move, Resize | |
Controle selecionável que exibe uma lista hierárquica de itens da árvores que podem ser selecionados pelo usuário. |
BORDER, H_SCROLL, V_SCROLL,
SINGLE, MULTI, CHECK
|
Dispose, Control*, Selection, DefaultSelection, Collapse, Expand | |
TreeItem | Objeto selecionável da interface do usuário que representa uma hierarquia de itens da árvore em uma árvore. | Dispose |
Control* = Eventos herdados do Controle: FocusIn, FocusOut, Help, KeyDown, KeyUp, MouseDoubleClick, MouseDown, MouseEnter, MouseExit, MouseHover, MouseUp, MouseMove, Move, Paint, Resize