Układ TableWrapLayout jest układem opartym na układzie siatki, bardzo podobnym do uniwersalnego układu GridLayout pakietu SWT. Różni się on od niego tym, że używa algorytmu układu działającego podobnie do algorytmu tabel HTML. Uwzględnia udostępniony mu obszar klienta, a w przypadku braku miejsca powoduje rozszerzanie 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 pól sterujących w układzie. Wreszcie oba mogą przyjmować informacje wskazujące, które pole sterujące powinno przechwycić dostępny obszar itp.
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 pola 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 pola sterujące, które i tak
nie mogą być zawijane, jak tekst, przyciski, drzewa itp.). Należy jednak określić
nieprzerwaną ścieżkę z treści formularza do każdego tekstowego pola sterującego, które
musi zostać zawinięte.