Wir erklären, wie man eine grafische Benutzeroberfläche mit Java programmiert, Grundlagen und erste Schritte mit Swing und JavaFX.
Eine grafische Benutzeroberfläche (GUI) mit Fenstern, einem Menü, Schaltflächen, Eingabefelder und vielem mehr muss man nicht selbst programmieren. Java stellt dafür verschieden Möglichkeiten – Frameworks – zur Verfügung:
- AWT (Abstract Widget Toolkit), ist schon etwas älter und spielt inzwischen eine untergeordnete Rolle, wird aber immer noch eingesetzt. Das Aussehen der Komponenten (Fenster, Button, …) wird durch das Betriebssystem beeinflusst.
- Swing, baut auf AWT auf, ist neuer und umfangreicher. Das Aussehen der Komponenten wird Plattform-unabhängig vom Entwickler festgelegt.
- JavaFX, die neueste Bibliothek, es unterstützt 2D und 3D, Multimedia und mobile Geräte
Allen drei Toolkits gemeinsam ist, sie liefern eine Bibliothek mit vorgefertigten Klassen und Methoden, die einfach nur in das eigene Projekt eingebunden werden müssen.
Setup – Grundlagen
AWT und Swing sind bereits in der JDK Standard-Bibliothek enthalten. Hier reicht es aus, die einzelnen Komponenten jeweils in der Datei, in der sie verwenset werden, mit einer import
– Anweisung zu importieren.
JavaFX muss separat auf dem Computer installiert werden. Die einzelnen Bibliotheken von JavaFX muss man zusätzlich in das Projekt, in die JavaSE System Library einbinden.
Bibliothek importieren
Um eine konkrete Komponente von AWT oder Swing im eigenen Projekt zu nutzen, muss man die entsprechende „library“ oder das Paket am Dateianfang mit der Anweisung import
einbinden.
Dabei kann man entweder nur eine einzelne Komponente oder den gesamten Inhalt des Pakets importieren.
Zum Beispiel für Swing das Modul, mit dem ein Fenster erstellt wird:
import javax.swing.JFrame;
oder alle Module mit dem Platzhalter *
:
import javax.swing.*;
Ein Beispiel mit Swing
Ein Fenster erstellen mit Swing.
import javax.swing.JFrame;
import javax.swing.JLabel;
public class App {
public static void main(String[] args) {
JFrame frame = new JFrame("Swing-First");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JLabel label = new JLabel("First GUI-Demo with Swing");
frame.add(label);
frame.setSize(400, 300);
frame.setVisible(true);
}
}
JFrame
erstellt das Fenster selbst, JLabel
den im Fenster sichtbaren Text. Beide Module werden mit der Anweisung import
eingebunden.
Innerhalb von class App
und der main-Methode, die für den Programmstart zuständig ist, folgt der Code für die grafischen Komponenten:
Ein neues Fenster-Objekt und ein neues Label-Objekt werden erstellt und das Label dem Fenster hinzugefügt.
Für das Fenster werden das Verhalten beim Klick auf die X-Schaltfläche und die Fenstergröße definiert.
Zum Schluss wird noch bestimmt, dass das Fenster für den Benutzer sichtbar sein soll.
Ausblick
Das gewählte Beispiel soll nur die elementare Funktionsweise bei der Programmierung von grafischen Benutzeroberflächen demonstrieren.
Für den realen Betrieb des Programms werden Codeteile für Sicherheitsaspekte hinzugefügt. Außerdem ist der Programmcode in der Regel auf mehrere Dateien oder Klassen verteilt.
Java Swing Projektbeispiel
Ein Beispiel mit Swing und Aufteilung auf zwei Klassen, ausführlichen Erläuterungen haben wir auf GitHub bereitgestellt:
Lesen Sie weiter über das Setup mit JavaFX:
JavaFX Setup
Quellen:
https://docs.oracle.com/javase/8/docs/api/javax/swing/package-summary.html