Ocasionalmente, talvez seja necessário gravar sua própria classe Layout personalizada. Isso é mais apropriado quando se tem um layout complexo utilizado em muitos lugares diferentes do aplicativo. Observe que, a menos que você esteja gravando um layout bastante genérico que será utilizado por vários widgets Compostos, é bem mais simples e mais fácil calcular tamanhos e posicionar filhos em um listener de redimensionamento.
Os layouts são os responsáveis pela implementação de dois métodos:
Um terceiro método, flushCache(...), pode ser opcionalmente implementado para limpar os dados em cache associados a um controle específico. Freqüentemente, o método computeSize() de um widget pode ser caro e, dessa forma, os layouts podem armazenar em cache os resultados para melhorar o desempenho.
Mais discussões sobre layouts personalizados podem ser localizadas em Compreendendo layouts no SWT.