Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
196<br />
8 <strong>Das</strong> <strong>SWT</strong><br />
Referenz-GUI-Element Für die zweite Methode der Positionierung gibt es drei Konstruktor-Varianten:<br />
Zwischen GUI-Elementen<br />
hin- und herschalten<br />
FormAttachment (control, offset, alignment)<br />
FormAttachment (control, offset)<br />
FormAttachment (control)<br />
Der Parameter control gibt dabei die Control-Instanz (also das GUI-<br />
Element) an, auf die wir uns beziehen.<br />
Der Parameter offset gibt den Abstand zwischen den GUI-Elementen<br />
an. Wird der Parameter weggelassen, ist der Abstand Null.<br />
Der Parameter alignment gibt an, auf welche Kante des Referenzelements<br />
wir uns beziehen. Für Zuweisungen an top- und bottom-Felder<br />
können hier die Stilkonstanten <strong>SWT</strong>.TOP, <strong>SWT</strong>.BOTTOM und <strong>SWT</strong>.CENTER<br />
verwendet werden. Für Zuweisungen an left- und right-Felder sind<br />
es die Konstanten <strong>SWT</strong>.LEFT, <strong>SWT</strong>.RIGHT und <strong>SWT</strong>.CENTER. Wird der Parameter<br />
alignment weggelassen, so wird die nächstliegende Kante<br />
benutzt.<br />
8.6.6 Die Klasse StackLayout<br />
Diese Klasse ist im Unterschied zu den vorigen vier vordefinierten Layouts<br />
nicht im Package org.eclipse.swt.layout enthalten, sondern im<br />
Package org.eclipse.swt.custom. Sie unterscheidet sich von anderen<br />
Layout-Klassen auch darin, dass innerhalb eines Composite immer nur<br />
ein GUI-Element sichtbar ist. Der Grund dafür ist, dass alle GUI-Elemente<br />
gleich groß gemacht werden und an der gleichen Stelle übereinander<br />
positioniert sind. Damit ist immer nur das oberste Element sichtbar.<br />
Die Klasse StackLayout ist dann sinnvoll, wenn man zwischen<br />
GUI-Elementen hin- und herschalten will. Man braucht lediglich die<br />
gewünschte Control-Instanz an die höchste Position zu bringen.<br />
Für StackLayout stehen die folgenden Optionen zur Verfügung:<br />
marginHeight Dieses Feld kontrolliert die Größe des Randbereichs oben und unten in Pixeln.<br />
marginWidth Dieses Feld kontrolliert die Größe des Randbereichs links und rechts in Pixeln.<br />
topControl Die sichtbare Control-Instanz.<br />
Im folgenden Beispiel legen wir zwei Button-Instanzen übereinander.<br />
Wird eine Taste gedrückt, wird jeweils die andere Taste sichtbar:<br />
// Neues Composite erzeugen<br />
final Composite stackComposite = new Composite(composite,<strong>SWT</strong>.NULL);<br />
final StackLayout stackLayout = new StackLayout();<br />
// Text-Buttons erzeugen<br />
final Button buttonA = new Button(stackComposite, <strong>SWT</strong>.PUSH);