Die folgende Aufgabe stellt eine Beispielaufgabe dar, die ich mir selbst ausgedacht habe.

Nehmen wir an, dass wir immer noch für einen Filmverleih einige Funktionen in die Software implementieren wollen. Der Auftraggeber möchte zwei verschiedene Entwürfe und wir haben uns entschieden, den einen mit Box-Layout und den anderen mit Border-Layout zu entwerfen. Also los gehts. Wir sollen in diesem Fall fünf Buttons implementieren: Liste öffnen, Liste speichern, Neue Liste, Liste verwerfen und Trailer abspielen. Die Buttons sollen für den Entwurf erstmal ohne Funktion implementiert werden.

Ich lege daher eine neue Klasse an und erweitere damit JFrame. Das gibt mir die Möglichkeit, mit this.abc den alles enthaltenen Rahmen direkt anzusprechen, ohne einen eigenen Frame anlegen zu müssen.

import java.awt.BorderLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;

public class Border extends JFrame {
	JPanel panel;
	JButton oeffnen;
	JButton speichern;
	JButton neu;
	JButton loeschen;
	JButton trailer;

	public Border()
	{
	// Titel und Größe festlegen
	this.setTitle("Filmverleih Filmriss");

			
	// Elemente initialisieren
	panel = new JPanel();
	oeffnen = new JButton("Liste öffnen");
	speichern = new JButton("Liste speichern");
	neu = new JButton("Neue Liste");
	loeschen = new JButton("Liste löschen");
	trailer = new JButton("Trailer abspielen");
	
	// Layout setzen, Elemente innerhalb des Panels anordnen und das Panel dem Frame hinzufügen
	panel.setLayout(new BorderLayout());
	panel.add(oeffnen, BorderLayout.NORTH);		
	panel.add(speichern, BorderLayout.SOUTH);	
	panel.add(neu, BorderLayout.WEST);	
	panel.add(loeschen, BorderLayout.EAST);
	panel.add(trailer, BorderLayout.CENTER);
	
	this.add(panel);

	//Fenster auf die minimal benötigte Größe setzen
	pack();
}
}

Am Ende sollte es so aussehen

Der Button im Zentrum nimmt so viel Platz wie möglich ein, während sich die anderen Buttons automatisch um das Zentrum in ihrer jeweiligen Ausrichtung platzieren.