# JPanel vertikal im BorderLayout zentrieren



## new@java (21. Dez 2010)

Hallo!

Wir haben folgendes Problem: Wir haben ein BorderLayout und im Bereich EAST befindet sich ein JPanel mit einem Bild. Dieses JPanel würden wir gern vertikal zentrieren. Kann uns jemand sagen, wie das geht?

Vielen Dank im Voraus...

Hier der Code:


```
import javax.swing.*;
import java.awt.*;

/**
 * Die OurGUI-Klasse enthält die Eigenschaften des Haupt-/Navigationsfensters des Spiels.
 * @author ADAC
 */
public class OurGUI extends JFrame
{
	// Festlegung der Attribute der Klasse OurGUI
	private JButton button1;
	private JButton button2;
	private JButton button3;
	private JButton button4;
	private JButton button5;
	private JPanel panelButton;
	private JPanel bild;
	private JLabel oben;
	private JLabel unten;
	private JLabel label;
	private JLabel label1;
	private ImageIcon image;
	private JDialog dialog;
	
	/**
	 * Konstruktor der Klasse OurGUI
	 * Eigenschaften des Fensters werden festgelegt
	 */
	public OurGUI()
	{
		// Name/Titel des Hauptfensters 
		setTitle("Willie Wurm");
		// Größe des Fensters
		setSize(600, 700);
		// Fenster auf Bildschirm zentrieren
		setLocationRelativeTo(null);
		// Bei Klick auf x Fenster schließen
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		// Dem Fenster ein BorderLayout zuweisen
		setLayout(new BorderLayout());
		
		// Neues Objekt der Klasse OpenWindow erzeugen
		OpenWindow window = new OpenWindow (this);

		// Buttons erzeugen
		button1 = new JButton("Spielen");
		button2 = new JButton("Spielregeln");
		button3 = new JButton("Highscore");
		button4 = new JButton("Einstellungen");
		button5 = new JButton("About");
		
		// Den Buttons Actionlistener zuweisen
		button1.addActionListener(window);
		button2.addActionListener(window);
		button3.addActionListener(window);
		button4.addActionListener(window);
		button5.addActionListener(window);

		// Neues GridLayout mit fünf Zeilen, einer Spalte, 7pt horizontalem Abstand und
		// 30pt vertikalem Abstand erzeugen
		GridLayout gl = new GridLayout(5, 1, 7, 30); 
		// Panels für Buttons und Bild erzeugen
		panelButton = new JPanel(gl);
		bild = new JPanel();

		// Bild importieren
		ImageIcon image = new ImageIcon("wurm3.jpg");

		// Buttons auf Panel legen
		panelButton.add(button1);
		panelButton.add(button2);
		panelButton.add(button3);
		panelButton.add(button4);
		panelButton.add(button5);

		// Labels erzeugen
		oben = new JLabel("Willie Wurm");
		label = new JLabel(image, JLabel.CENTER);
		unten = new JLabel("© (A)DAC");
		
		// Labels auf die ContentPane legen
		getContentPane().add(BorderLayout.NORTH, oben);
		getContentPane().add(BorderLayout.SOUTH, unten);

		// Text der oberen und unteren Labels zentrieren
		oben.setHorizontalAlignment(JLabel.CENTER);
		unten.setHorizontalAlignment(JLabel.CENTER);

		// Label mit dem Bild auf entsprechendes Panel legen
		bild.add(label);

		// Panels auf die ContentPane legen
		getContentPane().add(BorderLayout.WEST, panelButton);
		getContentPane().add(BorderLayout.EAST, bild);
		
		// Fenster sichtbar machen
		setVisible(true);		
	}

}
```


----------



## Marco13 (21. Dez 2010)

Wenn du das mit
bild = new JPanel(new GridLayout(1,1));
erstellst, und da das ImageIcon-Label draufpackst, sollte das ImageIcon-Label das Bild eigentlich zentrieren - wenn nicht, kann man mal nach den Konstruktorparametern vom JLabel schauen...


----------



## new@java (21. Dez 2010)

Super, danke! Hat geklappt!


----------

