Weitere aktuelle Java-Titel finden Sie bei dpunkt.
 Inhaltsverzeichnis   Auf Ebene Zurück   Seite Zurück   Seite Vor   Auf Ebene Vor   Eine Ebene höher   Index


8.8.11

Positionierung ohne Layout-Manager


Grundsätzlich ist es auch möglich, Komponenten ohne einen Layout-Manager in einem Container zu platzieren. Dies kann erforderlich sein, wenn wenige Komponenten verwendet werden und die Größe des Containers die Größe der Komponenten nicht beeinflussen soll oder wenn die Anordnung der Komponenten unabhängig von der Plattform fest fixiert sein soll. Falls eine Anwendung mit fest kodierten Koordinaten auf verschiedenen Plattformen eingesetzt wird, sollten aus den im Abschnitt 8.8.1 beschriebenen Gründen sorgfältige Tests durchgeführt werden, ob das Erscheinungsbild überall zufriedenstellend ist.

Zunächst muss der Standard-Layout-Manager des Containers deaktiviert werden:
  setLayout(null);
Ohne Layout-Manager ist ein Aufruf der Methode setSize() der Komponente zwingend erforderlich, da die Breite und die Höhe einer Komponente wie alle Elemente in Java mit 0 initialisiert werden. Fehlt ein solcher Aufruf, wird die Komponente scheinbar nicht angezeigt, da ihre Breite und ihre Höhe 0 ist. Zusätzlich kann die Komponente mit setLocation() absolut im Container positioniert werden. Die Methode setBounds() erlaubt die gleichzeitige Einstellung der Größe und der Positionierung.

Abbildung 8.67: Positionierung ohne Layout-Manager
Abbildung 8.67


Material zum Beispiel

Das folgende Applet ordnet alle Komponenten untereinander an. Hierbei werden sie in ihrer bevorzugten Größe sowie mit einem festen Abstand zur vorhergehenden Komponente und zum linken Rand dargestellt. Abbildung 8.67 zeigt das Ergebnis.
  public class AbsPosDemo extends Applet {
    int row = 10;
    Insets insets = new Insets(5, 5, 0, 0);
  
    public void insertComponent(Component c) {
      add(c);
      Dimension d = new Dimension(c.getPreferredSize());
      c.reshape(insets.left, row, d.width, d.height);
      row += insets.top+d.height;
    }
  
    public void init() {
      setLayout(null);
      setFont(new Font("Helvetica", Font.PLAIN, 14));
      insertComponent(new Button("Java"));
      insertComponent(new Checkbox("Zucker"));
      insertComponent(new Checkbox("Milch"));
    }
  
  }


 Inhaltsverzeichnis   Auf Ebene Zurück   Seite Zurück   Seite Vor   Auf Ebene Vor   Eine Ebene höher   Index

Copyright © 2002 dpunkt.Verlag, Heidelberg. Alle Rechte vorbehalten.