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.
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 ist wie Grid Werke .
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