3.9.4. Border Layout

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:

Abbildung 12. Border Layout Beispiel

Border Layout Beispiel

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

Siehe auch PDF Version dieses Dokuments, Jowidgets API Spezifikation