/* 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.
|