BoxLayout: Buttons auf gleiche Größe bringen

Status
Nicht offen für weitere Antworten.

spacegaier

Mitglied
Hallo zusammen,

ich habe ein JFrame in dem sich ein JPanel mit mehreren Buttons befindet. Als Layout nutze ich BoxLayout.

Wie kann ich nun erreichen dass die Buttons alle die gleiche Breite haben (Habe sie bereits zentriert, was aber unwesentlich sein sollte)?

Meine setPreferedSize-Dimension scheint er nicht umzusetzen?!?

Hier mal mein Code:

Code:
public class MainFrame extends JFrame
{
	public MainFrame(int x, int y, String title)
	{
		JPanel mp = new JPanel();
		
		mp.setLayout(new BoxLayout(mp, BoxLayout.Y_AXIS));
		
		mp.setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10));
		
		setTitle(title);
		setDefaultCloseOperation(EXIT_ON_CLOSE);
		setSize(x, y);
		
		int screenWidth = Toolkit.getDefaultToolkit().getScreenSize().width;
		int screenHeight = Toolkit.getDefaultToolkit().getScreenSize().height;
		
		setLocation((screenWidth - x) / 2, (screenHeight - y) / 2);
		
		JButton button_new_contact 		= new JButton("Neuen Kontakt anlegen");
		JButton button_delete_contact 	= new JButton("Bestehenden Kontakt löschen");
		JButton button_show_contacts 	= new JButton("Kontakte anzeigen");
		JButton button_exit_app 		= new JButton("Adress-Buch verlassen");
		
		Dimension dim = new Dimension(150, 50);
		
		button_new_contact.setMnemonic(KeyEvent.VK_N);
		button_new_contact.setPreferredSize(dim);
		button_new_contact.setAlignmentX(Component.CENTER_ALIGNMENT);
		button_new_contact.setToolTipText("<html>Klicken Sie hier um einen 
neuen Kontakt anzulegen.</html>");
		
		button_delete_contact.setMnemonic(KeyEvent.VK_L);
		button_delete_contact.setPreferredSize(dim);
		button_delete_contact.setAlignmentX(Component.CENTER_ALIGNMENT);
		button_delete_contact.setToolTipText("<html>Klicken Sie hier um einen 
bestehenden Kontakt zu löschen.</html>");
		
		button_show_contacts.setMnemonic(KeyEvent.VK_A);
		button_show_contacts.setAlignmentX(Component.CENTER_ALIGNMENT);
		button_show_contacts.setToolTipText("<html>Klicken Sie hier um alle ihre 
gespeicherten Kontakt anzuzeigen.</html>");
		
		button_exit_app.setMnemonic(KeyEvent.VK_V);
		button_exit_app.setAlignmentX(Component.CENTER_ALIGNMENT);
		button_exit_app.setToolTipText("<html>Klicken Sie hier um das 
Adress-Buch zuverlassen.</html>");
				
		mp.add(Box.createVerticalBox());
		mp.add(button_new_contact);
		mp.add(Box.createVerticalStrut(10));
		mp.add(button_delete_contact);
		mp.add(Box.createVerticalStrut(10));
		mp.add(button_show_contacts);
		mp.add(Box.createVerticalStrut(10));
		mp.add(button_exit_app);
		mp.add(Box.createVerticalStrut(10));
		
		this.add(mp);
		pack();
		setVisible(true);

	}

HINWEIS: Ich nehme auch äußerst gerne Hinweise/Tipps bezüglich dem ganzen Code an (z.B. hinsichtlich Style o.ä.). Es ist mein erster Versuch in Java. Habe davor viel mit C/C++ gearbeitet. Wenn euch also etwas auffällt, bitte unbedingt auch hier reinschreiben (und keine Rücksicht von wegen erster Versuch und so!!!

Grüße - spacegaier
 

spacegaier

Mitglied
Okay, habe jetzt auch GridLqyout umgestellt. Jetzt liegen aber meine Buttons wieder direkt aneinander. Wie bringe ich zwischen diese jetzt noch ein bisschen Freiraum?

Code:
public class MainFrame extends JFrame
{
	public MainFrame(int x, int y, String title)
	{
		JPanel mp = new JPanel();
		
		mp.setLayout(new GridLayout(0,1));
		
		mp.setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10));
		
		setTitle(title);
		setDefaultCloseOperation(EXIT_ON_CLOSE);
		setSize(x, y);
		
		int screenWidth = Toolkit.getDefaultToolkit().getScreenSize().width;
		int screenHeight = Toolkit.getDefaultToolkit().getScreenSize().height;
		
		setLocation((screenWidth - x) / 2, (screenHeight - y) / 2);
		
		JButton button_new_contact 		= new JButton("Neuen Kontakt anlegen");
		JButton button_delete_contact 	= new JButton("Bestehenden Kontakt löschen");
		JButton button_show_contacts 	= new JButton("Kontakte anzeigen");
		JButton button_exit_app 		= new JButton("Adress-Buch verlassen");
		
		Dimension dim = new Dimension(280, 50);
		
		button_new_contact.setMnemonic(KeyEvent.VK_N);
		button_new_contact.setPreferredSize(dim);
		button_new_contact.setAlignmentX(Component.CENTER_ALIGNMENT);
		button_new_contact.setToolTipText("<html>Klicken Sie hier um einen 
neuen Kontakt anzulegen.</html>");
		
		button_delete_contact.setMnemonic(KeyEvent.VK_L);
		button_delete_contact.setPreferredSize(dim);
		button_delete_contact.setAlignmentX(Component.CENTER_ALIGNMENT);
		button_delete_contact.setToolTipText("<html>Klicken Sie hier um einen 
bestehenden Kontakt zu löschen.</html>");
		
		button_show_contacts.setMnemonic(KeyEvent.VK_A);
		button_show_contacts.setAlignmentX(Component.CENTER_ALIGNMENT);
		button_show_contacts.setToolTipText("<html>Klicken Sie hier um alle ihre 
gespeicherten Kontakt anzuzeigen.</html>");
		
		button_exit_app.setMnemonic(KeyEvent.VK_V);
		button_exit_app.setAlignmentX(Component.CENTER_ALIGNMENT);
		button_exit_app.setToolTipText("<html>Klicken Sie hier um das 
Adress-Buch zuverlassen.</html>");
				
		mp.add(button_new_contact);
		mp.add(button_delete_contact);
		mp.add(button_show_contacts);
		mp.add(button_exit_app);
		
		
		this.add(mp);
		pack();
		setVisible(true);

	}
 

spacegaier

Mitglied
Okay, danke, jetzt geht's.

Für alle, hier die Lösung:

Anstatt nur:
Code:
mp.setLayout(new GridLayout(0,1));
muss man folgendes nehmen:

Code:
GridLayout gl = new GridLayout(0,1);
		gl.setVgap(10);
		mp.setLayout(gl);
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
R BoxLayout(Y_Axis) ignoriert preferedSize von Buttons AWT, Swing, JavaFX & SWT 5
I BoxLayout zentriert Label nicht AWT, Swing, JavaFX & SWT 7
Z BoxLayout funktioniert nicht und Buttongröße AWT, Swing, JavaFX & SWT 18
R Swing panels nebeneinander mit BoxLayout.X_AXIS AWT, Swing, JavaFX & SWT 4
M BoxLayout AWT, Swing, JavaFX & SWT 6
T Swing Größe einer Komponente in einem BoxLayout / FlowLayout festlegen AWT, Swing, JavaFX & SWT 7
I BoxLayout, FlowLayout und Komponentengrößen AWT, Swing, JavaFX & SWT 1
S BoxLayout: Anordnung der Komponenten links statt zentriert AWT, Swing, JavaFX & SWT 0
S Bei BoxLayout haben hinzugefügten Jpanels einen Versatz/Space AWT, Swing, JavaFX & SWT 0
K BoxLayout-nicht teilbar AWT, Swing, JavaFX & SWT 6
apple987123 Swing BoxLayout AWT, Swing, JavaFX & SWT 3
G Problem mit Button im Boxlayout... AWT, Swing, JavaFX & SWT 4
F Swing BoxLayout ein JTextfield wird falsch positioniert AWT, Swing, JavaFX & SWT 2
T BoxLayout AWT, Swing, JavaFX & SWT 4
P LayoutManager Komponenten einfügen (FlowLayout, BoxLayout) AWT, Swing, JavaFX & SWT 2
B Probleme mit Layout Manager (BoxLayout) AWT, Swing, JavaFX & SWT 4
C Swing BoxLayout: Buttongröße AWT, Swing, JavaFX & SWT 10
F BoxLayout mit gleicher größe AWT, Swing, JavaFX & SWT 2
D Swing [BoxLayout] Nur TextArea und nicht TextField vergroessen AWT, Swing, JavaFX & SWT 2
G BoxLayout: Ausrichtung der Komponenten AWT, Swing, JavaFX & SWT 2
K BoxLayout skaliert die "falschen" Elemente AWT, Swing, JavaFX & SWT 5
hdi BoxLayout mit Abstand? AWT, Swing, JavaFX & SWT 5
G BoxLayout? AWT, Swing, JavaFX & SWT 2
J Wie kann man beim BoxLayout scrollen? Keine Scrollleiste!:-( AWT, Swing, JavaFX & SWT 7
H AWTError: BoxLayout can't be shared AWT, Swing, JavaFX & SWT 1
A Probleme mit JPanel und BoxLayout AWT, Swing, JavaFX & SWT 5
J JComboBox und BoxLayout AWT, Swing, JavaFX & SWT 2
D BoxLayout in GridBagLayout AWT, Swing, JavaFX & SWT 7
O BoxLayout AWT, Swing, JavaFX & SWT 3
G BoxLayout: Abstand zwischen vertikalen Komponenten! AWT, Swing, JavaFX & SWT 4
XWing Basic JPanel mit 2 Buttons beutzen. AWT, Swing, JavaFX & SWT 10
jojoge Wie erstelle ich runde Buttons mit Farbe? AWT, Swing, JavaFX & SWT 1
berserkerdq2 Buttons und Shapes sehen ja nach Screengröße klein oder zu groß aus, jemand eine Idee, was man tun kann? AWT, Swing, JavaFX & SWT 1
H Swing Buttons erst nach Klick sichtbar AWT, Swing, JavaFX & SWT 13
volcanos SpringLayout mit zusätzlichen Buttons außerhalb des SpringLayout AWT, Swing, JavaFX & SWT 33
K Swing Buttons erst blinken lassen und dann abfragen, ob sie gedrückt worden sind AWT, Swing, JavaFX & SWT 2
Z Switch Case für Buttons AWT, Swing, JavaFX & SWT 8
O Swing JOptionPane.showOptionDialog - Wie kann ich Buttons größer machen AWT, Swing, JavaFX & SWT 10
R mehrere buttons mit forschleife kreieren und individuell bearbeiten AWT, Swing, JavaFX & SWT 1
Z Swing Kann man denn abstand zwischen zwei Buttons berechnen AWT, Swing, JavaFX & SWT 5
B JavaFX DropDown Menu mit ausführbaren Buttons AWT, Swing, JavaFX & SWT 1
VPChief Buttons Reagieren erst wenn ich Fenster minimiere AWT, Swing, JavaFX & SWT 4
ms_cikar Jbutton erzeugt neue Buttons AWT, Swing, JavaFX & SWT 2
K Buttons dynamisch erstellen (NetBeans) AWT, Swing, JavaFX & SWT 10
S Kreis vergrößern/verkleinern mit Buttons AWT, Swing, JavaFX & SWT 1
J JavaFX von einem Array aus Buttons herausfinden auf welcher geklickt wurde aus dem Array. AWT, Swing, JavaFX & SWT 1
xYurisha ActionListener Methoden Buttons zuweisen! AWT, Swing, JavaFX & SWT 16
xYurisha Aus einer Gui Buttons, Label und ProgessBars entfernen AWT, Swing, JavaFX & SWT 4
CptK Wieso wird nur ein Teil meiner Buttons angezeigt? AWT, Swing, JavaFX & SWT 1
J Ziehen eines Buttons im JPanel AWT, Swing, JavaFX & SWT 2
J Drag and Drop eines Buttons AWT, Swing, JavaFX & SWT 0
J TicTacToe Buttons AWT, Swing, JavaFX & SWT 14
J ActionListener bei Buttons AWT, Swing, JavaFX & SWT 14
DaCrazyJavaExpert Swing Extern den Text eines nicht fetsgelegten Buttons bekommen. AWT, Swing, JavaFX & SWT 12
T Swing Double Click bei Buttons in JTable AWT, Swing, JavaFX & SWT 9
C Buttons funtionieren nicht AWT, Swing, JavaFX & SWT 10
S SWT neues Fenster, buttons aus alten etc... AWT, Swing, JavaFX & SWT 0
G vorgefertigte Buttons oder neue Komponente mit MouseListener? AWT, Swing, JavaFX & SWT 0
Neumi5694 Sprache der Standard-Buttons AWT, Swing, JavaFX & SWT 7
Timo_neu_in_java Buttons Erstellen AWT, Swing, JavaFX & SWT 6
H JavaFX TableCell mit Buttons AWT, Swing, JavaFX & SWT 1
A Swing Programm funktioniert aber zwei Buttons werden angezeigt AWT, Swing, JavaFX & SWT 3
kilopack15 Buttons ohne Funktion AWT, Swing, JavaFX & SWT 2
S Keylistener reagiert bei Buttons nicht. AWT, Swing, JavaFX & SWT 8
S ActionListener für alle Buttons AWT, Swing, JavaFX & SWT 26
T Buttons auf Tablet viel kleiner als am PC AWT, Swing, JavaFX & SWT 0
S Buttons und TextField automatisch vergrößern AWT, Swing, JavaFX & SWT 8
R 2D-Grafik Buttons mit Slick2D und LWJGL AWT, Swing, JavaFX & SWT 2
J JavaFX Buttons mit Array erzeugen AWT, Swing, JavaFX & SWT 1
JG12111989 Buttons funktionieren nicht AWT, Swing, JavaFX & SWT 4
A Swing Buttons werden trotz setVisible nicht dargestellt AWT, Swing, JavaFX & SWT 14
M Buttons in JSplitPane hinzufügen AWT, Swing, JavaFX & SWT 6
X Swing Anwendung regaiert auf keine Buttons mehr wärend while(scanner.hasNextLine()) ausgeführt wird. AWT, Swing, JavaFX & SWT 4
T Durch klicken eines Buttons Klasse wechseln AWT, Swing, JavaFX & SWT 2
A Swing JPanel zeigt Buttons nicht an AWT, Swing, JavaFX & SWT 4
V Tastatur KeyListener für mehrere Buttons AWT, Swing, JavaFX & SWT 1
I JavaFX Langes drücken eines Buttons AWT, Swing, JavaFX & SWT 4
I JavaFX Buttons und TableView AWT, Swing, JavaFX & SWT 2
K Swing Durch Methode erzeugte Buttons ansteuern AWT, Swing, JavaFX & SWT 5
D Buttons werden nebeneinander angeordnet AWT, Swing, JavaFX & SWT 9
J Java -8 Action Listener für mehrere Buttons AWT, Swing, JavaFX & SWT 9
D JavaFX Dynamisch erzeugte Buttons sollen Code ausführen. AWT, Swing, JavaFX & SWT 2
D Buttons erscheinen nicht auf Frame AWT, Swing, JavaFX & SWT 2
M 4-Gewinnt mit Buttons AWT, Swing, JavaFX & SWT 1
Y Kann man Buttons in einem JFrame rund machen ? AWT, Swing, JavaFX & SWT 2
K Swing Keine Reaktion auf Tastatureingaben bei mehreren Buttons??? AWT, Swing, JavaFX & SWT 4
wolfgang63 JavaFX Transparenter Hintergrund aber sichtbare Buttons AWT, Swing, JavaFX & SWT 6
C Im ActionListener Buttons disablen, einen Thread starten, dann Buttons enablen AWT, Swing, JavaFX & SWT 2
gamebreiti auf usereingabe warten mit GUI(nur Labels, Buttons etc. keine Texteingaben) AWT, Swing, JavaFX & SWT 3
W Buttons verschieben AWT, Swing, JavaFX & SWT 3
R Swing Buttons werden nicht angezeigt AWT, Swing, JavaFX & SWT 4
P Buttons/Labels auf GUI positionieren AWT, Swing, JavaFX & SWT 2
X Swing setContentPane verdeckt mir alle Buttons Labels etc... AWT, Swing, JavaFX & SWT 14
H Taschenrechnerprojekt in Javafx - Frage zu den Buttons in FXML AWT, Swing, JavaFX & SWT 1
U Swing Beim Bedienen eines Buttons JFrame schließen AWT, Swing, JavaFX & SWT 2
A Radio Buttons sollen den Text der text Area bestimmen AWT, Swing, JavaFX & SWT 9
H org.eclipse.swt.Slider ohne Buttons AWT, Swing, JavaFX & SWT 1
U Buttons schräg implementieren AWT, Swing, JavaFX & SWT 4
X buttons aus externe klasse lesen? AWT, Swing, JavaFX & SWT 3
V Buttons sehen immer "active" aus AWT, Swing, JavaFX & SWT 6

Ähnliche Java Themen


Oben