Frage

Gibt es eine Möglichkeit Elemente zu einem Gridlayout hinzuzufügen, die sie horizontal statt vertikal fügen? Grundsätzlich mag ich eine ganze Zeile mit Elementen füllen, bevor es mit dem nächsten beginnt.

ich hoffe, meine Frage klar.

War es hilfreich?

Lösung

Ich würde vorschlagen, GridBagLayout und GridBagConstraints

Es ist viel wie ein Gridlayout, aber mit GridBagConstraints können Sie die x- und y-Koordinaten der Komponente angeben, und Sie können Spalten- und Zeilen Spannweiten tun.

Es würde wie folgt aussehen:

import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;

GridBagLayout layout = new GridBagLayout();
GridBagConstraints c = new GridBagConstraints();

JPanel panel = new JPanel();
JLabel label = new JLabel("foo");

panel.setLayout(layout);

c.gridx = 0;
c.gridy = 0;
panel.add(label, c);

Andere Tipps

Das Gridlayout, wie der Name schon sagt legt Komponenten entsprechend die Anzahl der Spalten und Zeilen, die Sie in dem Konstruktor , und so schnell in der nächsten Zeile bewegen, wie Sie die angegebene Anzahl von Komponenten hinzugefügt haben.

Aus Ihrer Frage, so scheint es, dass eine Flow ist mehr entlang den Linien von dem, was Sie suchen.

Bearbeiten : Ich bin nicht sicher, warum, aber wenn Sie die Anzahl der Zeilen angeben, wie 0 (z new GridLayout(0, 9), so scheint es richtig funktioniert

.

Eigentlich sollten Sie Grouplayout es ist neu (seit JDK 1.6) und ziemlich genial. Es gibt Ihnen eine Tonne Flexibilität in Layout.

Ich nehme an, Sie wollte sagen, dass Sie die alle Zeilen in einer Spalte zu füllen, bevor in der nächsten Spalte zu bewegen. Wenn ja, dann einen benutzerdefinierten Layout-Manager verwenden

VerticalGridLayout

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top