TableWrapLayout é um layout com base em grade muito semelhante ao versátil GridLayout do WST. A diferença é que ele utiliza um algoritmo de layout que funciona de maneira mais parecida com tabelas HTML. Ele tenta respeitar a largura da área do cliente fornecida e crescer 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. Os dois podem aceitar sugestões sobre qual controle deve 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.). No entanto, você deve possuir um caminho contínuo para cada controle de texto que precisa de agrupamento.