Rozvržení

Často bývá nejlepším způsobem ošetření umístění jednoduchého prvku widget listeneru události změny velikosti. Existují ovšem obecné vzory používané aplikacemi při umísťování prvků widget. Tyto vzory lze strukturovat jako konfigurovatelné algoritmy rozvržení, které mohou být opakovaně používány mnoha různými aplikacemi.

SWT definuje rozvržení, které poskytují univerzální nastavení umístění a velikosti podřízených prvků widget v kompozitním prvku. Rozvržení jsou podtřídou abstraktní třídy Layout. Standardní rozvržení SWT lze najít v balíčku org.eclipse.swt.layout.

Při změně velikosti a polohy prvků widget se používá několik obecných definic:

Tyto pojmy jsou relevantní pro aplikace bez ohledu na to, které rozvržení se používá. Rozvržení si můžete představit jako pohodlný způsob, jak sdružit funkce změny velikosti pro opakované použití.

Rozvržená zavádějí některé další pojmy:

Další diskusi a obrázky ilustrující tyto pojmy naleznete v Porozumění rozvržením v SWT.

Následující úsek kódu ukazuje jednoduchý případ aplikace využívající zpětné volání změny velikosti pro nastavení velikosti popisu na velikost jeho nadřazené kostry dokumentu:

      Display display = new Display ();
      Shell shell = new Shell (display);
      Label label = new Label (shell, SWT.CENTER);
   shell.addControlListener (new ControlAdapter () {
      public void controlResized (ControlEvent e) {
      label.setBounds (shell.getClientArea ());
      }
   });

Následující úsek používá rozvržení k dosažení stejného efektu:

      Display display = new Display ();
      Shell shell = new Shell (display);
      Label label = new Label (shell, SWT.CENTER);
   shell.setLayout (new FillLayout ());

I v tomto jednoduchém příkladu použití rozvržení zmenšuje kód aplikace. Pro složitější rozvržení je zjednodušení mnohem větší.

Následující tabulka uvádí souhrn standardních rozvržení poskytovaných SWT.

Rozvržení
Účel
FillLayout Zajišťuje rozvržení obslužných prvků do jediného řádku nebo sloupce a vynucuje shodnou velikost těchto prvků.
FormLayout Umísťuje podřízený prvek s použitím FormAttachments za účelem nepovinné konfigurace levého, horního, pravého a dolního roku jednotlivých podřízených prvků.
GridLayout Umísťuje podřízené prvky do řádků a sloupců.
RowLayout Umísťuje podřízený prvek do vodorovných řádků nebo do svislých sloupců.