Grafische Elemente anordnen - Layoutmanager

Einführung - Grafische Oberflächen mit AWT    Grafische Elemente erzeugen und anordnen    Grafische Elemente in Beispielen    Grafische Elemente anordnen - Layoutmanager    Jetzt soll auch was passieren - Ereignisbehandlung     Ereignisbehandlung in Beispielen

Layoutmanager sind Objekte in Java, die sich um die Anordnung der Objekte auf der Programmoberfläche kümmern. Sie bestimmen die Position und die Größe der darzustellenden Objekte. Bei Veränderungen am Programmfenster aktualisieren sie diese.

Nachfolgend werden 5 Grafikobjekte erzeugt und mit verschiedenen Layoutmanagern verwaltet.

01 import java.awt.*;
02
03 /**
04 Mein erstes Javaprogramm mit grafischer Oberfläche
05 */
06
07 public class GrafischeOberflaeche04a extends Frame {
08
09 Label lbAufgabe = new Label("Aufgabe :");
10 TextField tfEingabe = new TextField("Drück mal die");
11 Button buTaste = new Button("Taste");
12 Checkbox cbDaten = new Checkbox("Einverstanden");
13 TextArea taText = new TextArea("",5,10,TextArea.SCROLLBARS_VERTICAL_ONLY);
14
15 FlowLayout flAnordnung = new FlowLayout();
16
17 public GrafischeOberflaeche04a() {
18 this.setSize(400,300);
19 this.setTitle("Ich bin eine grafische Oberfläche");
20 this.setVisible(true);
21
22 this.setLayout(flAnordnung);
23
24 this.add(lbAufgabe);
25 this.add(tfEingabe);
26 this.add(buTaste);
27 this.add(cbDaten);
28 this.add(taText);
29 }
30
31 public static void main(String[] args) {
32 GrafischeOberflaeche04a programm = new GrafischeOberflaeche04a();
33 }
34 }
35
36

Quelltext: GrafischeOberflaeche04a.java

Erläuterung zum Quelltext

Zeile 09-13 Es werden 5 verschiedene grafische Objekte deklariert (vereinbart) und instanziiert (erzeugt).
Zeile 15 In dieser Zeile wird ein Layoutmanger flAnordnung vom Typ FlowLayout erzeugt.
Zeile 22 Der in Zeile 15 erzeugte Layoutmanger wird der Anwendung zugeordnet.
Zeile 24-28 Mit der Methode add werden die grafischen Elemente zum Layout des Programms hinzugefügt.

FlowLayout

Der Layoutmanager "FlowLayout" ordnet Elemente wie Buchstaben in einer Textverarbeitung an. Solange der Platz reicht, werden die Elemente nebeneinander angeordnet. Reicht der Platz nicht mehr aus, wird das nächste Element in einer neuen Zeile positioniert.
Ändert man nach dem Programmstart die Größe des Programmfensters, ordnet der Layoutmanager die Elemente entsprechend der neuen Fenstergröße neu an.

Und so sieht das Programm mit dem FlowLayout aus. Zur Animation bitte anklicken.

FlowLayout


GridLayout

Der Layoutmanager "GridLayout" ordnet die Elemente tabellarisch an.
Im folgenden Programmausschnitt sind nur die geänderten Zeilen dargestellt.
Der Konstruktor in Zeile 15 erzeugt ein GridLayout, welches seine Elemente in einer Tabelle mit 3 Zeilen mit jeweils zwei Spalten anordnet.

Merke :
Der Layoutmanager GridLayout ignoriert Größenangaben der Elemente. Die Größe der Elemente wird den Zellgrößen der Tabelle angepasst.

15 GridLayout glAnordnung = new GridLayout(3,2);
22 this.setLayout(glAnordnung);

Quelltext: GrafischeOberflaeche04b.java

Und so sieht das Programm mit dem GridLayout aus. Zur Animation bitte anklicken.

GridLayout


BorderLayout


Der Layoutmanager "BorderLayout" dürfte der bekannteste sein. Die meisten Standardprogramme benutzen ihn.
Die Oberfläche wird in 5 Bereiche geteilt. Die äußeren haben Bezeichnungen nach Himmelsrichtungen.
In Standardprogrammen enthält der Bereich NORTH die Menüs, der Bereich SOUTH die Statusleiste, der Bereich CENTER den Arbeitsbereich und die Bereiche WEST bzw. EAST nehmen oft weitere Menüs oder Dialogfelder auf.
Im folgenden Programmausschitt sind nur die geänderten Zeilen dargestellt.
Neu ist, dass beim Hinzufügen der Elemente zum Layout des Programms der Bereich angegeben werden muss, in den das Element eingefügt werden soll.
Wie bei GridLayout werden Größenangaben der Elemente ignoriert.

15 BorderLayout blAnordnung = new BorderLayout();
22 this.setLayout(glAnordnung);
24 this.add(lbAufgabe, BorderLayout.NORTH);
25 this.add(tfEingabe, BorderLayout.SOUTH);
26 this.add(buTaste, BorderLayout.WEST);
27 this.add(cbDaten, BorderLayout.EAST);
28 this.add(taText, BorderLayout.CENTER);

Quelltext: GrafischeOberflaeche04c.java

Und so sieht das Programm mit dem BorderLayout aus. Zur Animation bitte anklicken.

BorderLayout


null - Layout



Die reservierte Anweisung null bezeichnet keinen Layoutmanager. Mit diesem Schlüsselwort wird der Oberfläche mitgeteilt, dass kein Layoutmanager verwendet werden soll.
Der Programmierer muss für jedes Element die Position und die Größe festlegen. Ohne geeignete Anweisungen wirkt sich eine Änderung der Fenstergröße nicht auf die Anordnung der Elemente aus.

15 //Ereugung des Layoutmanagers entfällt
22 this.setLayout(null);
23
24 lbAufgabe.setBounds(10,30,50,20);
25 this.add(lbAufgabe);
26
27 tfEingabe.setBounds(70,30,100,20);
28 this.add(tfEingabe);
29
30 buTaste.setBounds(180,30,70,20);
31 this.add(buTaste);
32
33 cbDaten.setBounds(10,60,100,20);
34 this.add(cbDaten);
35
36 taText.setBounds(10,90,300,180);
37 this.add(taText);

Quelltext: GrafischeOberflaeche04d.java

Und so sieht das Programm ohne Layoutmanager aus. Zur Animation bitte anklicken.

BorderLayout

Einführung - Grafische Oberflächen mit AWT    Grafische Elemente erzeugen und anordnen    Grafische Elemente in Beispielen    Grafische Elemente anordnen - Layoutmanager    Jetzt soll auch was passieren - Ereignisbehandlung     Ereignisbehandlung in Beispielen

zurück zur Hauptseite Informatik