Jeder Container hat einen Standard Layout Manager, der dafür zuständig ist, die enthaltenen Komponenten anzuordnen. Dieser voreingestellte Layout Manager kann durch einen anderen ersetzt werden.
Das AWT bietet:
Beispiel
Zuordnung eines Layout-Managers zu einem Container:
meinContainer.setLayout(new CardLayout());
Anordnung der Komponenten an den vier Rändern und in der Mitte.
import java.awt.*; import java.applet.Applet; public class buttonDir extends Applet { public void init() { setLayout(new BorderLayout()); add("North", new Button("North")); add("South", new Button("South")); add("East", new Button("East")); add("West", new Button("West")); add("Center", new Button("Center")); } }
Überlagerung der Komponenten.
cards = new Panel(); cards.setLayout(new CardLayout()); ...// Erzeuge Panel p1 mit Knöpfen ...// Erzeuge Panel p1 mit Textfeld cards.add("Panel with Buttons", p1); cards.add("Panel with TextField", p2);
Die Strings dienen zur Identifikation der Karten. Das Umschalten zwischen sich verdeckenden Karten muß man ausprogrammieren, z.B.:
(CardLayout)cards.getLayout()). show(cards,"Panel with TextField");
Komponenten der Reihe nach angeordnet.
setLayout(new FlowLayout()); setFont(new Font("Helvetica", Font.PLAIN, 14)); add(new Button("Button 1")); add(new Button("2")); add(new Button("Button 3")); add(new Button("Long-Named Button 4")); add(new Button("Button 5"));
Durch Konstruktorargument kann angegeben werden, ob die Komponenten innerhalb einer Zeile zentriert (Default), rechts- oder linksbündig angeordnet werden.
Komponenten in einem Matrix-Raster.
// Beliebigviele Reihen, 2 Spalten setLayout(new GridLayout(0,2)); add(new Button("Button 1")); add(new Button("2")); add(new Button("Button 3")); add(new Button("Long-Named Button 4")); add(new Button("Button 5"));
Komponenten in einem flexiblen Matrix-Raster. Mächtigster aber auch kompliziertester Layout Manager:
Das Layout wird durch GridBagConstraints spezifiziert:
GridBagLayout gridbag = new GridBagLayout(); GridBagConstraints c = new GridBagConstraints(); setLayout(gridbag); //...Nach Setzen der Attribute von c: add(irgendeineKomponente, c);
Die wichtigsten Attribute von GridBagConstraints sind:
Die Knöpfe 8 und 9 der Oberfläche (Seite )
wurden z.B. wie folgt erzeugt:
GridBagLayout griba = new GridBagLayout(); GridBagConstraints c = new GridBagConstraints(); setLayout(griba); c.fill = GridBagConstraints.BOTH; c.gridwidth = 1; c.gridheight = 2; c.weighty = 1.0; add(new Button("Button8"), c); c.weighty = 0.0; c.gridwidth = GridBagConstraints.REMAINDER; c.gridheight = 1; add(new Button("Button9"), c);