Предлагаю вашему вниманию мой перевод статьи "Understanding Layouts in SWT".
В статье очень подробно рассказывается про механизм Layout'ов в Java библиотеке SWT. На примерах поясняются различные аспекты поведения и особенности
использования стандартных Layout'ов, кроме того даются советы как написать свои классы.
Статья очень большая с кучей примеров и рисунков, здесь публикую только отрывок.
Предисловие
Разрабатывая приложенение на SWT, Вы можете столкнуться с необходимостью использовать layout'ы, чтобы придать приложению особый внешний вид.
Layout'ы управляют расположением и размером дочерних компонентов контейнера Composite.
Классы layout'ов являются подклассами абстрактного класса Layout.
В этой статье рассказывается как работать со стандартными layout'ами, и как как написать свой собственный класс.
Обзор
Разрабатывая приложенение на Standard Widget Toolkit (SWT),
Вы можете столкнуться с необходимостью использовать layout'ы, чтобы придать приложению особый внешний вид.
Layout'ы управляют расположением и размером дочерних компонентов контейнера Composite.
Классы layout'ов являются подклассами абстрактного класса Layout.
SWT предлагает несколько стандартных классов layout'ов, если их не достаточно, пользователь может разработать свой.
В SWT позиция и размер компонентов не рассчитывается автоматически.
Приложения при инициализации могут задать размеры и расположение дочерних элементов Composite, кроме того приложение может
изменять эти значения, перехватывая событие изменения размера.
Другой способ управлять расположением и размером компонентов заключается в использовании специализированных классов.
Если дочерний компонент не получил размер, то его размеры будут равны нулю и он не будет отображаться.
Следующая картинка иллюстрирует несколько наиболее важных терминов, которые используются при обсуждении layout'ов.
Контейнер Composite (в данном случае это TabFolder) имеет location (расположение), clientArea (клиентскую область) и trim (кромка).
Размер контейнера Composite складывается из размеров клиентской области и размера кромки.
Этот Composite содержит два дочерних компонента, расположенных рядом.
Класс Layout управляет размером и позицией этих дочерних компонентов.
Layout позволяет задать spacing (промежуток) между компонентами, и margin (зазор) между компонентами и границей Layout.
Размер Layout совпадает с размером клиентской обрастиComposite'а.