Ein Graphical User Interface (kurz GUI) bildet die Schnittstelle zwischen Computer und Benutzer. Dieses Programm ermöglicht es dem/der Nutzer:in, mithilfe von GUI-Elementen, wie Buttons oder Fenstern, mit dem Computer zu interagieren.
Swing ist ein GUI-Toolkit (auch Programmbibliothek), welches Widgets (auch Steuerelemente) zur Programmierung von grafischen Benutzerschnittstellen bereitstellt.
Was ist ein GUI?
In den Anfängen der Computer-Geschichte konnte dieser nur mithilfe der Kommando-Zeile bedient werden.
Da dadurch die Bedienung des Computers sehr viel Übung und Vorerfahrung benötigte, wurde GUI entwickelt.
GUI (auch Graphical User Interface) bildet dabei die Schnittstelle zwischen Computer und Benutzer. Dank dieses Interfaces kann jetzt mithilfe von GUI-Elementen, wie Fenster oder Buttons, besser mit dem Computer interagiert werden.
Swing
In Java gibt es zwei Bibliotheken für GUI-Elemente: Abstract Window Toolkit (kurz AWT) und die Swing-Bibliothek. Da AWT sehr veraltet ist, wirst du im Folgenden Swing und seine GUI-Elemente näher kennen lernen.
GUI-Elemente
Die wichtigsten GUI-Elemente aus der Swing-Bibliothek sind:
JLabel
: Statischer, nicht editierbarer TextJButton
: Button, der mit Text versehen werden kannJToggleButton
: Button mit zwei Zuständen (gedrückt und nicht gedrückt)JCheckBox
: AuswahlkästchenJRadioButton
: Gruppierung von mehreren Auswahlmöglichkeiten, bei der nur eine ausgewählt werden kann.ButtonGroup
: Zur Gruppierung vonJRadioButton
JTextField
: Einzeiliges TexteingabefeldJScrollBar
: Schieberegler zum ScrollenJSlider
: Schieberegler, der mit einer Skala versehen werden kann.JProgressBar
: FortschrittsbalkenJSeperator
: TrennlinieJTable
: Tabelle
Fenster und Dialoge
Diese GUI-Elemente müssen in einem Fenster oder einem Dialog verwendet werden, da diese das Grundgerüst einer jeden Anwendung ausmachen.
Die wichtigsten Klassen aus der Swing-Bibliothek sind dabei:
JFrame
: Nimmt alle anderen Container und Bedienelemente auf und vereint es zu einer Oberfläche.JDialog
: WieJFrame
, nur dass während der betreffende JDialog angezeigt wird, kein anderes Fenster verwendet bzw. aktiviert werden kannJOptionPane
: Pop-up für Fehlermeldungen oder Hinweise
Menüs
Jetzt kennst du die wichtigsten GUI-Elemente und die Fenster und Dialoge. Um das Programm steuern zu können, werden jedoch noch Menüs benötigt. Über diese Menüs können weitere Dialoge mit eigenen Funktionalitäten ausgewählt werden.
Die wichtigsten Menü-Klassen sind:
JMenu
: Container für die Menü-ElementeJMenuBar
: Menüleiste, in der die einzelnenJMenu
enthalten sindJMenuItem
: Die einzelnen Menü-Elemente innerhalb einesJMenu
Container
Container dienen dazu, die eigentlichen UI-Bedienelemente zu strukturieren und gruppieren. Dabei solltest du dir vor allem den JPanel
merken.
In diesem JPanel
können verschiedene Layout-Typen verwendet werden, wie zum Beispiel:
BorderLayout
: Platziert einzelne Komponenten in bis zu fünf Bereichen: oben, unten, links, rechts und in der MitteBoxLayout
: Ordnet Komponenten vertikal oder horizontal unter- bzw. nebeneinander anCardLayout
: Komponenten können sich durch unterschiedlichen Input verändern (z.B. von Buttons zu Textfeld)FlowLayout
: Legt die Komponenten in einer einzigen Reihe an und beginnt eine neue Reihe, wenn der Container nicht breit genug istGridLayout
: Legt Komponenten in der gleichen Größe an und zeigt sie in der gewünschten Anzahl von Zeilen und SpaltenGroupLayout
: Zum Gruppieren verschiedener Komponenten, die zusammen gehören