~Java4Beginners~
~Java4Beginners~

FlowLayout

Das FlowLayout ist ein ziemlich anspruchsloses Layout, in welchem man auch keinen Einfluss auf die endgültige Gestaltung hat. Alle Elemente, die einem Container mit FlowLayout hinzugfügt werden, werden automatisch nebeneinander angeordnet. Der Vorteil ist allerdings, dass neben dem BoxLyout ein Zeilenumbruch stattfindet, wenn das Fenster zu klein wird..

Konstruktoren

Dem FlowLayout können insgesamt 3 Parameter übergeben werden.
  • align (Konstante oder entsprechenden int-Wert) - Ausrichtung im Container
  • hgap (int-Wert) - horizontaler Abstand zum nächsten Element
  • vgap (int-Wert) - vertikaler Abstand zum nächsten Element

new FlowLayout();
new FlowLayout(align);
new FlowLayout(align, hgap, vgap);

Konstante align

Konstante int-Wert Beschreibung
LEFT 0 Ausrichtung am Zeilenanfang Linksbündig
CENTER 1 Ausrichtung innerhalb einer Zeile mittig.
RIGHT 2 Ausrichtung innerhalb der Zeile rechtsbündig.
Für die nächsten 2 Konstanten muss ich ein klein bisschen ausholen. Im Normalfall werden die Komponenten von links nach rechts angeordnet. Über die Klasse componentOrientation kann dies unter Umständen geändert worden sein (z. B. für den arabischen Sprachraum) auf rechts nach links. Um dieses zu Berücksichtigen, verwendet das FlowLayout noch 2 zusätzliche Konstanten. Die Ausrichtung ist abhängig von aktuellen Orientierung.
Konstante int-Wert Beschreibung
LEADING 3 Links-nach-Rechts-Orientierung: Ausrichtung Linksbündig
Rechts-nach-Links-Orientierung: Ausrichtung Rechtsbündig
TRAILLING 4 Links-nach-Rechts-Orientierung: Ausrichtung Rechtsbündig
Rechts-nach-Links-Orientierung: Ausrichtung Linksbündig

Beispielprogramm


import java.awt.Color;
import java.awt.FlowLayout;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;

/**
 * Beispielprogramm FlowLayout
 * @author Markus Badzura
 */
public class LayoutFlow extends JFrame
{
    public void LayoutFlow()
    {
        setTitle("Beispielprogramm FlowLayout");
        setSize(400,200);
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        JPanel panel_flow = new JPanel(new FlowLayout(FlowLayout.RIGHT, 20,20));
        JLabel label1 = new JLabel("Das ist ein Label");
        label1.setForeground(Color.green);
        JLabel label2 = new JLabel("kurz");
        JLabel label3 = new JLabel("und doch");
        label3.setForeground(Color.red);
        JLabel label4 = new JLabel("nur ein Label");
        panel_flow.add(label1);
        panel_flow.add(label2);
        panel_flow.add(label3);
        panel_flow.add(label4);
        add(panel_flow);
        setVisible(true);
    }

    public static void main(String[] args) {
        LayoutFlow lf = new LayoutFlow();
        lf.LayoutFlow();
    }
}
Folgende Startansicht erhalten wir beim Start.

Wenn die Fenstergröße verändert wird, passen sich die Positionen der Label automatisch an die neue Fenstergröße an.

nach oben Java4Beginners -- Seitenversion 1.0 -- Stand: 2017-05-18