Link zu www.kneller-gifs.de

GUI - Layout (BorderLayout, GridLayout)

Zum Positionieren von Elementen auf der GUI gibt es in Java Unterstützung von Layoutmanagern. Im folgenden Beispiel wird ein Frame in ein BorderLayout aufgeteilt. Dieses besteht aus 5 Teilen (NORTH, EAST, SOUTH, WEST und CENTER). Darauf werden ein Panel und 4 Labels positioniert. Auf dem Panel werden 2 Buttons im GridLayout positioniert. Also innerhalb einer Tabelle, die aus einer Spalte mit 2 Zeilen besteht.

Hier der Quellcode zum oben beschiebenen Frame:
import java.awt.BorderLayout;
import java.awt.Color;
import javax.swing.JFrame;
import javax.swing.JLabel;

public class Gui2 extends JFrame {
    private JLabel l1, l2, l3, l4;

    public Gui2() {
        getContentPane().setBackground(Color.ORANGE); // Framehintergrundfarbe
        // Framelayout North, South ... mit 9 Pixel Zellenabstand
        setLayout(new BorderLayout(9, 9));

        // Labels erzeugen
        l1 = new JLabel("Text Label 1");
        l1.setHorizontalAlignment(JLabel.CENTER);
        l2 = new JLabel("Text Label 2");
        l3 = new JLabel("Text Label 3");
        l4 = new JLabel("Text Label 4");
        l4.setHorizontalAlignment(JLabel.CENTER);

        // Panelklasse instanziieren
        Gui2Panel panel = new Gui2Panel();

        // Frame mit Labels und Panel bestuecken
        getContentPane().add("North", l1);
        getContentPane().add("West", l2);
        getContentPane().add("Center", panel);
        getContentPane().add("East", l3);
        getContentPane().add("South", l4);

        pack(); // Frame auf benötigte Größe begrenzen
        setVisible(true); // Frame sichtbar machen
    }
}

Klasse mit einzubindendem Panel, auf dem 2 Buttons plaziert sind
import java.awt.GridLayout;
import javax.swing.JButton;
import javax.swing.JPanel;

public class Gui2Panel extends JPanel{
    JButton b1=new JButton("Button 1");
    JButton b2=new JButton("Button 2");

    public Gui2Panel() {
        setLayout(new GridLayout(2, 1));
        b1 = new JButton("Button 1");
        b2 = new JButton("Button 2");
        add(b1);
        add(b2);
    }
}

Testklasse zum Starten der Anwendung
public class Test {
    public static void main(String[] args) {
        Gui2 g = new Gui2();
    }
}