TableWrapLayout to układ oparty na siatce, bardzo podobny do uniwersalnego układu GridLayout pakietu SWT. Różni się on od układu GridLayout zastosowaniem algorytmu działającego w sposób zbliżony bardziej do tabel HTML. W układzie tym uwzględnia się szerokość udostępnionego obszaru klienta, z możliwością zwiększania rozmiarów w pionie.
Układy GridLayout i TableWrapLayout są do siebie podobne pod wieloma względami. W obu elementy potomne są rozmieszczane w ramach siatki. Oba zawierają dane układu określające sposób traktowania wszystkich elementów sterujących w układzie. Ponadto w przypadku obu układów można stosować wskazówki dotyczące elementów sterujących, za pomocą których należy przechwycić dostępny obszar itd.
Podstawową różnicą między tymi układami jest sposób tworzenia układu.
Układ TableWrapLayout
rozpoczyna od rozmieszczania kolumn. Oblicza minimalną,
zalecaną i maksymalną szerokość każdej z kolumn i na podstawie tych informacji przypisuje
wolne obszary. W tym układzie obszar przeznaczony dla kolumn jest dzielony równomiernie,
dzięki czemu elementy sterujące są zawijane tylko, gdy jest to konieczne.
Układy GridLayout
i TableWrapLayout
można ze
sobą łączyć, ale gałąź, w której użyto układu GridLayout
określa miejsce,
w którym zawijanie jest przerywane. Takie zachowanie jest możliwe do przyjęcia, jeśli
zawijanie nie jest wymagane (jeśli element złożony zawiera elementy sterujące, które i tak
nie mogą być zawijane, jak tekst, przyciski, drzewa itp.). Należy jednak określić nieprzerwaną ścieżkę układów TableWrapLayouts od treści formularza do każdego tekstowego elementu sterującego, który musi zostać zawinięty.