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 vier Buttons implementieren: Liste öffnen, Liste speichern, Neue Liste, Liste verwerfen. 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.

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

public Box()
{
	// 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");
	
	// Layout dem Panel zuweisen und festlegen ob Orientierung horizontal (X) oder vertikal (Y) erfolgen soll
	panel.setLayout(new BoxLayout(panel, BoxLayout.X_AXIS));
	panel.add(oeffnen);
	panel.add(speichern);
	panel.add(neu);
	panel.add(loeschen);
	this.add(panel);
	
	//Fenster auf die minimal benötigte Größe setzen
	pack();
}
}

Das Endergebnis sieht dann in etwa so aus

Alle Buttons sind auf der X-Achse (horizontal nebeneinander angeordnet. Das Fenster ist nur so groß, wie für alle Elemente benötigt.