Ein Border Layout teilt einen Container in fünf mögliche Bereiche auf: Center, Top, Bottom, Left und Right. In jedem Bereich kann sich genau ein Control befinden. Die folgende Abbildung zeigt ein typisches Border Layout:
In der Mitte (center) befindet sich eine TextArea, oben, rechts und links je eine Toolbar und unten ein TextFeld.
Die Accessor Klasse
org.jowidgets.api.layout.BorderLayout
liefert
einen Zugriff auf ein Border Layout. Sie hat folgende Methoden:
public static ILayoutFactory<ILayouter> get(){...} public static IBorderLayoutFactoryBuilder builder(){...}
Ein IBorderLayoutFactoryBuilder
hat die
folgenden Methoden:
IBorderLayoutFactoryBuilder margin(int margin); IBorderLayoutFactoryBuilder gap(int gap); IBorderLayoutFactoryBuilder gapX(int gapX); IBorderLayoutFactoryBuilder gapY(int gapY); IBorderLayoutFactoryBuilder marginLeft(int marginLeft); IBorderLayoutFactoryBuilder marginRight(int marginRight); IBorderLayoutFactoryBuilder marginTop(int marginTop); IBorderLayoutFactoryBuilder marginBottom(int marginBottom); ILayoutFactory<ILayouter> build();
Der margin
definiert den äußeren Abstand zur
ClientArea
des Containers. Er kann separat
für recht, links, oben und unten oder für alle Seiten zusammen
gesetzt werden. Der default margin
ist
0
. Der gap
definiert den
Abstand zwischen den einzelnen Bereichen. Er kann separat für
die x-Richtung und y-Richtung oder für beide zusammen gesetzt
werden. Der default gap
ist 4. Die Methode
build()
liefert eine neue
ILayoutFactory
zurück.
Um festzulegen, in welchem Bereich ein Control hinzugefügt wird,
muss auf diesem der LayoutConstraint
BorderLayoutConstraints
gesetzt werden. Das
folgende Beispiel verdeutlicht dies:
1 IToolBar top = container.add(BPF.toolBar(), BorderLayout.TOP); 2 IToolBar left = container.add(BPF.toolBar().setVertical(), BorderLayout.LEFT); 3 ITextArea center = container.add(BPF.textArea(), BorderLayout.CENTER); 4 IToolBar right = container.add(BPF.toolBar().setVertical(), BorderLayout.RIGHT); 5 ITextControl bottom = container.add(BPF.textField(), BorderLayout.BOTTOM);