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