next up previous contents
Nächste Seite: Borderlayout Aufwärts: Die Layoutmanager Vorherige Seite: Flowlayout   Inhalt


Gridlayout

Ein Gridlayoutmanager ordnet alle Objekte in einem Gitter an. Die Zahl der Zeilen und Spalten ist einstellbar. Alle Objekte werden von links nach rechts zeilenweise eingefügt, und erhalten alle dieselbe Größe. Diese Größe orientiert sich an dem größten enthaltenen Objekt. Alle anderen Objekte bekommmen dann ebenfalls diese Größe zugeordnet. Das folgende Beispiel demonstriert die Funktionsweise eines Gridlayoutmanagers:


    /* Example gridlayout.c */

    :
    frame     = j_frame("Grid Layout Demo");
  
    j_gridlayout(frame,2,2);
         
    button1    = j_button(frame,"button1");
    button2    = j_button(frame,"button2");
    button3    = j_button(frame,"button3");
    button4    = j_button(frame,"button4");
    
    j_sethgap(frame,20);
    j_setvgap(frame,5);
  
    j_setsize(button1,200,100);
     
    j_pack(frame);
    j_show(frame);
    :

Die Funktionen sind identisch mit denen eines Flowlayoutmanagers. Der Funktionsaufruf:


    j_gridlayout(frame,2,2);

weist dem Frame einen Gridlayoutmanager zu, der 2 Zeilen und 2 Spalten verwalten soll. Die Objekte werden anschließend von links nach rechts zeilenweise eingefügt. Werden 0 Spalten oder 0 Zeilen übergeben, so werden automatisch ausreichend Spalten bzw. Zeilen generiert, wie nötig sind, um alle Elemente aufzunehmen.

Die Funktionen:


    j_sethgap(frame,20);
    j_setvgap(frame,5);

setzen analog zum Flowlayoutmanager die horizontalen und vertikalen Abstände zwischen den Objekten. Die abschließenden Funktionen:


    j_pack(frame);
    j_show(frame);

sorgen dafür, daß der Frame gepackt und angezeigt wird. Dabei bekommen alle Objekte die Größe des größten Objektes zugeordnet. Im Beispiel gibt der Button 1 die Größe vor, da dieser explizit die Abmessungen 200:100 zugeordnet bekommt, und somit alle anderen Buttons übertrifft.

Da der Gridlayoutmanager die Stategie verfolgt, alle Objekte gleich groß darzustellen, werden bei Fenstergrößenänderungen alle enthaltenen Elemente so modifiziert, daß alle Elemenete wieder dieselbe Größe erhalten.

Abbildung: Demoprogramm zum Gridlayoutmanager. Alle Elemente werden in einem Gitter angeordnet und sind immer gleich groß
gridlayout.eps


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