Wie würde ich ein reaktionsfähiges Layout in Java Swing erstellen?

8

Ich zeige eine Liste von Schlüsselwertpaaren in einem Swing-JPanel an. Der Schlüssel wird in einem JLabel angezeigt und der Wert wird in einem JTextField angezeigt. Es ist genug Platz auf dem Panel vorhanden, um 1 oder 2 Spalten der Schlüsselwertpaare anzuzeigen, abhängig davon, wie groß der übergeordnete JFrame ist. Ich möchte 2 Spalten mit Schlüsselwertpaaren anzeigen, wenn das Panel nicht zu klein wird. Dann möchte ich zu einer Spalte wechseln. Ist das in Swing möglich, ohne einen eigenen Layout-Manager zu schreiben?

Wenn Sie jedes Schlüsselwertpaar auf ein eigenes Bedienfeld setzen und die Bedienfelder zu einem Ablauflayout hinzufügen, tun Sie das, was ich tun möchte, außer dass die Beschriftungen nicht miteinander ausgerichtet sind und die Textfelder nicht miteinander ausgerichtet sind furchtbar. Gibt es einen besseren Weg, dies zu tun?

Bearbeiten:

Hier ist, wie es aussehen würde. Wenn das Panel groß genug ist, zeigen Sie zwei Spalten an. Ansonsten zeige eine Spalte.

2 Spalten:

%Vor%

1 Spalte

%Vor%     
Jay Askren 20.11.2013, 20:04
quelle

1 Antwort

3

Sie können Ihre FlowLayout-Idee verwenden und trotzdem die Beschriftungen / Textfelder in einer Linie aufstellen. Fügen Sie jedem Schlüssel / Wert-Feld eine Strebe hinzu, die der Größe Ihres längsten Etiketts entspricht, um das Textfeld auf jeder Seite um denselben Betrag nach rechts zu drücken. Etwas wie:

%Vor%     
splungebob 20.11.2013 20:54
quelle

Tags und Links