TableWrapLayout

TableWrapLayout располагает элементы по сетке, аналогично GridLayout в SWT. Его отличие состоит в том, что его алгоритм выравнивания более похож на таблицы HTML. Он стремится сохранить ширину за счет высоты.

Но в остальном GridLayout и TableWrapLayout очень похожи. Они оба выстраивают дочерние элементы по сетке, содержат инструкции размещения для каждого элемента, в т.ч. какой управляющий элемент должен получать избыточное пространство и т.д.

Тем не менее, они существенно различаются в подходе к макетированию. TableWrapLayout начинает размещение со столбцов. Он рассчитывает минимальную, желаемую и максимальную ширину каждого столбца и на основе этого выделяет избыточное пространство. Пространство разделяется по столбцам так, чтобы минимизировать избыточный перенос элементов.

GridLayout и TableWrapLayout могут совмещаться, но в местах использования GridLayout перенос элементов прекращается. Это приемлемо если перенос не нужен (например, некоторые элементы, такие как кнопки и деревья, не поддерживают перенос вообще). Однако элементы с текстом, требующие переноса, не должны входить в другие контейнеры.