Wer mit Java die grafische Benutzeroberfläche programmieren möchte, stößt auf JFrame – das Standard-Fenster der Swing-Bibliothek. Mit JFrame können Container und Bedienelemente zu einer Oberfläche vereint werden.
JFrame
JFrame ist das Herzstück der Swing-Programmierung. Es bildet den Rahmen, in dem alle anderen Komponenten angezeigt werden. Ein JFrame besteht aus verschiedenen Ebenen:
- Die hinterste Ebene ist der RootPane, von der alle anderen Schichten abhängen.
- Darüber liegt der LayeredPane, der den Ebenen der Komponenten zugeordnet ist.
- Der ContentPane enthält die eigentlichen Bedienelemente und optional eine Menüleiste.
- Als oberste Schicht gibt es noch den GlassPane, der über dem ContentPane liegt und wie eine durchsichtige Scheibe funktioniert.
In der Regel benötigt man nur Zugriff auf den ContentPane und seine Bedienelemente sowie die Menüleiste.
Schauen wir uns ein Beispiel an, wie man einen einfachen Frame erstellt:
import javax.swing.JFrame;
public class FrameBeispiel {
public static void main(String[] args) {
JFrame meinFrame = new JFrame("Beispiel JFrame");
meinFrame.setSize(200, 200);
meinFrame.setVisible(true);
}
}
Wir erzeugen ein JFrame-Objekt mit dem Titel “Beispiel JFrame”, setzen die Breite und Höhe auf 200 Pixel und zeigen den Frame an.
Nach dem Ausführen des Codes wird folgendes Fenster angezeigt:
Jetzt haben wir ein leeres Fenster erstellt, aber wie fügen wir Elemente hinzu? Hier ist ein einfaches Beispiel:
import javax.swing.JFrame;
import javax.swing.JLabel;
public class FrameBeispiel {
public static void main(String[] args) {
JFrame meinFrame = new JFrame("Mein JFrame Beispiel");
meinFrame.setSize(200, 200);
meinFrame.add(new JLabel("Beispiel JLabel"));
meinFrame.setVisible(true);
}
}
Jetzt enthält unser Fenster eine JLabel-Komponente. Wir haben einfach eine Import-Anweisung für JLabel hinzugefügt und die Methode add
aufgerufen, um das JLabel zum Frame hinzuzufügen.
Das Ergebnis sieht so aus:
Mit der Methode add
können beliebige Bedienelemente zur Oberfläche hinzugefügt werden. In den folgenden Kapiteln werden wir genauer erklären, wie jedes Element funktioniert und wie sie mithilfe von Layouts positioniert werden können.