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);