TableWrapLayout

TableWrapLayout é um layout baseado em grade muito semelhante ao versátil GridLayout do SWT. Ele difere do GridLayout no uso de um algoritmo de layout que funciona de forma mais parecida com tabelas HTML. Ele tenta respeitar a largura da área do cliente fornecida e cresce verticalmente para compensar.

Existem muitas semelhanças entre o GridLayout e o TableWrapLayout. Os dois organizam filhos em grades. Os dois possuem dados de layout que instruem o layout sobre como tratar cada controle. Ambos podem aceitar sugestões sobre qual controle deverá apropriar-se de espaço extra, etc.

No entanto, eles diferem fundamentalmente na abordagem ao layout. O TableWrapLayout inicia com colunas. Ele calcula as larguras mínima, preferencial e máxima de cada coluna e utiliza essas informações para designar espaço extra. Ele também tenta ser justo ao dividir espaço entre colunas, para que não haja agrupamento excessivo de alguns controles.

É possível misturar o GridLayout e o TableWrapLayout, mas a ramificação onde o GridLayout é utilizado é aquela onde o agrupamento para. Isso é completamente aceitável se você não desejar que ele agrupe (se o composto contiver controles que não podem ser agrupados de qualquer maneira, como texto, botões, árvores, etc.). Entretanto, você deve ter um caminho contínuo de TableWrapLayouts do corpo do formulário para cada controle de texto que precisa ser agrupado.