next up previous contents
Nächste Seite: Die Listener Aufwärts: Die Layoutmanager Vorherige Seite: Gridlayout   Inhalt


Borderlayout

Der Borderlayout Manager kann nur bis zu fuenf Objekte verwalten. Davon wird ein Objekt zentral in der Mitte plaziert. Die restlichen Objekte werden an jeweils einen Rand gelegt. Somit gibnt es fuef plazierungspositionen die netsprechend mit ''North'',''East'',''South'',''West'' und ''Center'' bezeichnet werden. Das folgende Beispiel demostriert die Verwendung eines solchen Layoutmanagers.


    /* Example borderlayout.c */

    : 
    frame     = j_frame("Border Layout");
    
    j_borderlayout(frame);

    right  = j_button(frame,"Right");
    left   = j_button(frame,"Left");
    bottom = j_button(frame,"Bottom");
    top    = j_button(frame,"Top");
    center = j_button(frame,"Center");
    
    j_borderpos(right,J_RIGHT);
    j_borderpos(left,J_LEFT);
    j_borderpos(bottom,J_BOTTOM);
    j_borderpos(top,J_TOP);
     
    j_show(frame);
    :

Mit der Funktion


    j_borderlayout(frame);

wird einem Behälter (Frame, Panel oder Dialog) ein Borderlayoutmanager zugeordnet. Alle weiteren Objekte, die in den Behälter eingefügt werden, werden zunächst im Zentrum plaziert. Sichtbar ist dann allerdings nur das zuletzt eingefügte Objekt. Um die anderen Objekte an ihre zugedachte Psition zu verschieben wird die Funktion:


    j_borderpos(left,J_LEFT);

verwendet. Als mögliche Positionen sind die Konstanten: J_RIGHT, J_LEFT, J_BOTTOM, J_TOP und J_CENTER gültig. Im Beispiel wird dem Objekt Center keine weitere Position zugeordnet, da es bereits defaultmäßig im Zentrum plaziert wurde. Es ist darauf zu achten, das das Element, das im Zentrum plaziert werden soll, stets als letztes Element dem Container hinzugefügt wird.

Die (im Beispiel nicht verwendeten) Funktionen:


    j_sethgap( container , hgap );
    j_setvgap( container , vgap );

setzen analog zum den anderen Layoutmanager die horizontalen und vertikalen Abstände zwischen den Objekten. Auch Größenzuweisung an die enthaltenen Objekte sind möglich. Werden keine explizieten Größenzuweisungen gemacht, so verfolgt der Borderlayoutmanager die Strategie, allen Randobjekten nur den minimal benötigten Platz zuzuweisen. Der verbleibende Platz wird dem zentralen Objekt zugeordnet.

Mit der Funktion


    j_pack(frame);

wird der Frame auf den minimalen Platzbedarf zusammengepackt. Da im Beispiel auf ein packen verzichtet wurde, wird die default Größe des Frames übernommen. Wird vom Benutzter die Fentergröße verändert, so ändert sich nur die Größe des zentralen Objektes.

Abbildung: Demoprogramm zum Borderlayoutmanager. Die Randelemente bekommen Ihre minimale Größe zugeordnet, der Rest bleibt für das zentrale Objekt.
borderlayout.eps


next up previous contents
Nächste Seite: Die Listener Aufwärts: Die Layoutmanager Vorherige Seite: Gridlayout   Inhalt
Merten Joost 2003-02-26