JTextField und JButton in BoxLayout auf eine Linie ausrichten

Marotti32

Grünschnabel
Hallo,

habe ein Problem mit BoxLayout. Wenn ich einem Panel ein BoxLayout verpasse und diesem dann ein oder auch mehrere Textfield(s) einsetze und dann noch einen JButton einsetze, stehen diese trotz der Ausrichtng entlang der Y-Achse nicht untereinander. Der JButton ist immer nach rechts verschobene. Bin noch ein wenig neu bei Java, hänge aber an diesem Problem schon recht lange. Wäre toll, wenn mr jemand helfen könnte. :)

Ein kleiner Beispielcode hierfür:

Code:
import java.awt.Color;
import java.awt.Dimension;

import javax.swing.BoxLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;

public class baueMir {


	public static void main(String[] args) {
		new baueMir().los();

	}

	private void los() {

		// Der JFrame
		JFrame jf = new JFrame();
		jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		jf.setSize(new Dimension(400, 400));

		// Das JPanel
		JPanel jp = new JPanel();
		jp.setLayout(new BoxLayout(jp, BoxLayout.Y_AXIS));
		jp.setBackground(Color.BLUE);

		JTextField tf = new JTextField("Hier ist der Text");
		tf.setPreferredSize(new Dimension(200, 30));
		tf.setMaximumSize(new Dimension(200, 30));
		tf.setMinimumSize(new Dimension(200, 30));
		JButton hb = new JButton("Der Button");

		// Das TextField und der Button in das Panel einsetzen
		jp.add(tf);
		jp.add(hb);

		// Das Panel in den jframe
		jf.add(jp);

		jf.setVisible(true);

	}

}
 
Hallo Marotti,

das Wunsch Swing-Layout erstellen ist nicht so einfach für den ungeübten. Meistens muss man entweder einen komplexen Layoutmanager wie GridBagLayout nehmen oder die einfacheren mehrfach miteinander kombinieren.

Das hier solltest du zumindest teilweise durcharbeiten:
http://java.sun.com/docs/books/tutorial/uiswing/layout/visual.html
http://www.galileocomputing.de/openbook/javainsel6/javainsel_14_009.htm#Xxx1000408
http://www-sst.informatik.tu-cottbus.de/~an/Books/HJP/html/k100203.html

Schau dir auch mal folgende Beispielapplikation mit "einfacher" Swinggui an (wizarddemo):
http://www.tutorials.de/forum/swing-awt-swt/270913-den-inhalt-der-contentpane-aendern.html

Obwohl die GUI nicht besonders komplex ist, war es nötig JPanels mehrfach mit verschiedenen Managern ineinander zu schachteln.


Vg Erdal
 
Hallo Erdal,

hab' vielen Dank für deine Tips. Ich habe das Problem eben ein wenig umgehen müssen. Nun sieht es einigermaßen aus. Aber dass JTextfields und JButton nicht gleichwertig entlang der y-Achse ausgerichtet werden, hat mich schon ein wenig verwundert...

cheers,, matthias
 
Zurück