JTextField "resizable" gestalten - wie?

sh

Aktives Mitglied
Hallo,

Ich habe einen JFrame mit einem Panel welcher dem BorderLayout folgt. Nun Will ich in die BorderLayout.NORTH-Ecke diesen Panel hinzufügen:
Code:
import java.awt.FlowLayout;

import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;


@SuppressWarnings("serial")
public class TopPanel extends JPanel {

	public TopPanel() {
		setLayout(new FlowLayout(FlowLayout.LEFT));
		JLabel nameDescription = new JLabel("Name:");
		JTextField nameField= new JTextField();
		add(nameDescription);
		add(nameField);
	}
	
}
Das funktioniert soweit auch prima, nur das das JTextField nur ca. 1 Millimeter breit ist. Okay, ich kann JTextField(20) machen zB. oder setColumn() und setMinimumWidth() oder setPreferredSize() oder setSize() und wie sie alle heissen benutzen, aber dann wird das JTextField() nicht kleiner wenn ich zB. das GUI-Fenster horizontal verkleinere. Was ich will ist, dass das JTextField() immer bis zum ganz rechten Rand des JFrame-Fensters geht, also von direkt hinter dem JLabel() bis ganz zum rechten Rand des Programmes.
Und zwar immer, also auch wenn der Benutzer die Breite des Fensters ändert. Wenn ich zB setPreferredSize() benutze und das Fenster horizontal verkleinere dann "springt" das JTextField() in die "nächste Zeile", was ich nicht will. Es soll zuerst bis auf seine Minimum-size verkleinert werden bevor es den Sprung macht.

Ich dachte der FlowLayout-Manager ist als Layout-Manager genau dazu da um das für mich zu übernehmen.

Allerdings starte ich grade ganz neu in Java-GUI Programmierung also hab ich relativ wenig Ahnung von der Materie.

Für Tipps & Vorschläge bin ich dankbar!

MfG
 
Ich mag diese Verschachtelung von Panels in Panels in Panels... wirklich nicht nur um ein Layout zu erhalten, dass ein bestimmtes Aussehen und Resize-Verhalten hat.:noe:

Wie bereits an anderer Stelle gesagt, nehme ich für alle Swing-GUIs den "besten" Layout-Manager den es gibt und zwar jgoodies FormLayout von Karsten Lentzsch.

Es existieren mehrere Tools, die diesen Layout-Manager unterstützen (Eclipse/Indgo (WindowBuilder), Abeille, JFormDesigner).

Ich nehme immer Abeille und damit wird Deine Anforderung echt ein Klacks.

Ich empfehle von den integrierten Layout-Managern die Finger zu lassen und mal abseits des MainStreams zu gucken.
 
Also mit dem GroupLayout() haut es nicht hin, hab auch andere Layouts probiert. Muss doch eine einfache Möglichkeit geben das wie oben beschrieben zu gestalten.

Ehrlich gesagt wollte ich mich erstmal mit dem "Java Swing Basic Stuff" vertraut machen und rausfinden wie sich das ganze Verhält bevor ich irgendwelche Libs von 3. Benutze. Wenn alles scheitert dann schau ich mir jgoodies mal an.

Danke für die Antworten.
 

Zurück
Oben