zur vorherigen Seite   zum Inhaltsverzeichnis   zur nächsten Seite

Antwort:

FlowLayout und Boxlayout

BoxLayout für einen JFrame setzen

Denkt daran, um einen Layoutmanager eines Containers auf BoxLayout zu setzen, müssen wir eine Referenz auf diesen Container an den Konstruktor übergeben:

BoxLayout(Container contain, int axis)

    contain: der Container für diesen Layoutmanager

    axis: BoxLayout.X_AXIS  ---- Ausrichtung von links nach rechts
          BoxLayout.Y_AXIS  ---- Ausrichtung von oben nach unten

Ein Problem beim JFrame ist, dass der Container, der die GUI-Komponenten enthält, der Inhaltsbereich (Content Pane) des Frames ist. (JFrames bestehen aus mehreren Teilen, um die wir uns gewöhnlicherweise nicht kümmern müssen.) Um eine Referenz auf den Inhaltsbereich zu bekommen, verwenden wir die getContentPane() Methode des Frames. Hier ist, wie wir den Layoutmanager des Frames des vorherigen Beispiels ändern können:

    setLayout( new BoxLayout(getContentPane(), BoxLayout.Y_AXIS) );
    add( dataPanel );
    add( butPanel );

Das würde keine sichtbaren Auswirkungen auf das Beispielprogramm haben, es sei denn der Frame wäre um sehr viel breiter. Ein breiter Frame, der FlowLayout verwendet, würde dataPanel und butPanel horizontal anordnen. Ein breiter Frame, der BoxLayout verwendet, würde dataPanel und butPanel vertikal anordnen.

FRAGE 18:

Hat GUI-Programmierung etwas "Versuch und Irrtum" zu tun?

zur vorherigen Seite   zum Inhaltsverzeichnis   zur nächsten Seite