Die beste Methode, um die Anordnung von einfachen Fensterobjekten zu handhaben, ist häufig innerhalb eines Ereignislisteners zur Größenänderung. Es gibt jedoch allgemeine Muster, die von Anwendungen beim Platzieren von Fensterobjekten verwendet werden. Diese Muster können in Form von Algorithmen für ein konfigurierbares Layout strukturiert sein, die durch viele unterschiedliche Anwendungen erneut verwendet werden können.
SWT definiert Layouts, die Größe und Position von untergeordneten Fensterobjekten in einem Kombinationsobjekt für allgemeine Zwecke definieren. Layouts sind Unterklassen der abstrakten Klasse Layout. Die SWT-Standardlayouts befinden sich im Paket org.eclipse.swt.layout.
Es gibt einige allgemeine Definitionen zur Änderung der Größe und Position von Fensterobjekten:
Diese Konzepte sind für alle Anwendungen wichtig, und zwar unabhängig davon, ob ein Layout verwendet wird. Ein Layout ist im Grunde genommen eine praktische Methode, um eine Funktionalität für das Ändern der Größe in einem Paket zu definieren und so erneut zu verwenden.
Durch Layouts werden einige weitere Konzepte eingeführt:
Weitere Erläuterungen zu diesen Konzepten sowie entsprechende Abbildungen zu deren Veranschaulichung finden Sie unter Understanding layouts in SWT.
Der folgende Codeausschnitt zeigt den einfachen Fall einer Anwendung, die einen Rückruf für die Größenänderung verwendet, um eine Bezeichnung auf die Größe ihrer übergeordneten Shell zu setzen:
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 ()); } });
Der nächste Ausschnitt verwendet ein Layout, um denselben Effekt zu erzielen:
Display display = new Display (); Shell shell = new Shell (display); Label label = new Label (shell, SWT.CENTER); shell.setLayout(new FillLayout());
Selbst bei einem so einfachen Beispiel kann der Anwendungscode durch die Verwendung eines Layouts reduziert werden. Bei komplexeren Layouts ist der Vereinfachungseffekt viel größer.
Die folgende Tabelle fasst die von SWT bereitgestellten Standardlayouts zusammen.
Layout |
Zweck |
---|---|
FillLayout | Strukturiert Steuerelemente in einzelnen Zeilen oder Spalten und ordnet ihnen zwingend dieselbe Größe zu. |
FormLayout | Positioniert anhand von 'FormAttachments' die untergeordneten Elemente, um optional die linke, obere, rechte und untere Kante jedes untergeordneten Elements zu konfigurieren. |
GridLayout | Positioniert die untergeordneten Elemente nach Zeilen und Spalten. |
RowLayout | Setzt die untergeordneten Elemente entweder in horizontale Zeilen oder vertikale Spalten. |