Was sind Layout-Manager?

LayoutManager sind spezielle Klassen, die die geordnete Anordnung einzelner Komponenten, wie z.B. Buttons oder Textfeldern, in GUIs steuern.

Die Gestaltung der Nutzeroberfläche eines Desktopprogramms ist ein entscheidendes Kriterium für seine Anwenderfreundlichkeit. Um sie zu optimieren kann auf die Nutzung von LayoutManagern zugegriffen werden. Sie können die Dimensionen der einzelnen Komponenten, wie Buttons, Textfelder oder Label steuern und deren Positionen innerhalb des aufnehmenden Containers bestimmen. Container sind von java.awt.Container abgeleitet und können eine sichtbare Oberfläche besitzen, wie z.B. Frame, Window, bzw. deren Swing-Varianten oder aber als unsichtbare Objekte, z.B. JPanel, Box, lediglich der Gruppierung von Komponenten dienen.

Werden Container ineinander geschachtelt, nutzt jeder seinen eigenen separaten Layout-Manager. So kann in der PAGE_END-Area eines BorderLayout z.B. ein JPanel mit BoxLayout oder in einer der Zellen eines GridLayout ein Container mit FlowLayout enthalten sein.
Da jeder Layout-Manager seine eigene Charakteristik besitzt, besteht auf diese Weise die Möglichkeit, eine Nutzeroberfläche sehr gezielt an die jeweiligen Erfordernisse anzupassen.

Übersicht der Layout-Manager in alphabetischer Reihenfolge.

BorderLayout
Der voreingestellte Standard-Manager aller ContentPanes, d.h. Container wie JFrame, JApplet, JDialog.
Speichert jeweils eine Komponente oben, unten, links, rechts und zentral.
BoxLayout
Ordnet alle Komponenten in einer einzigen horizontalen oder vertikalen Reihe an.
CardLayout
Ermöglicht das abwechselnde Laden unterschiedlicher Komponenten in ein und demselben Bereich des GUI.
FlowLayout
Ordnet Komponenten in einer horizontalen Reihe an und fügt einen Umbruch ein, wenn die Breite des Containers nicht ausreicht. Standard-Layout-Manager des JPanel.
GridBagLayout
Flexibelster, aber auch komplexester Layout-Manager. Komponenten werden in einem Raster angeordnet, deren einzelne Zellen jedoch fast unbegrenzt variiert werden können.
GridLayout
Komponenten werden in einem Raster angeordnet, dessen Zellen alle die gleiche Größe besitzen.
GroupLayout
Layout-Manager speziell für die Verwendung mit GUI-builders.
SpringLayout
Layout-Manager speziell für die Verwendung mit GUI-builders.
Quellen
  1. A Visual Guide to Layout Managers