FANDOM


Was bedeutet GUI? Bearbeiten

GUI steht als Abkürzung für Graphical User Interface, zu Deutsch grafische Benutzerschnittstelle oder grafische Bedienoberfläche.

Im Vordergrund steht dabei die Software-Ergonomie:

Ziel ist es, die Software an die Bedürfnisse des Benutzers anzupassen.

  • Eine gute GUI-Programmierung setzt jedoch auch Modularität voraus:
    • Einbinden neuer Funktionen
    • „kleine“ Änderungen der GUI
  • Wegen einer neuen DB darf die GUI nicht geändert werden
    • Einsatz eines Schichtenmodells

Java AWT Bearbeiten

Das Abstract Windowing Toolkit (AWT) wurde mit Java 1.0 eingeführt und hat mit Version 1.1 starke Änderungen erfahren. (Paketname: java.awt)

Zentrale Idee des AWT ist die Plattformunabhängigkeit. Ein Toolkit, das auf den Gemeinsamkeiten aller Betriebssystemen basiert, für die eine JRE (Java Runtime Environment) angeboten wird.

Funktionen von AWT Bearbeiten

  • Zeichnen grafischer Grundelemente (Linien, Polygone,…)
  • Layoutanordnungen von Elementen
  • Setzen von Farben und Zeichensätzen
  • Behandlung von Ereignissen und Mausbewegung

AWT wird heute als Grundlage der Swing–Klassen genutzt.

Java Swing Bearbeiten

Java Foundation Classes (JFC) / Swing wurde mit Java 1.2 als Erweiterung des AWT eingeführt. (Paketname: javax.swing)

Die GUI-Komponenten bieten neue grafische Elemente, die vollständig in Java implementiert sind, aber zum Teil auch auf AWT-Komponenten basieren.

Sie benötigen mehr Ressourcen als AWT-Komponenten, da alle Komponenten aus primitiven Zeichenelementen (Linie,…) erzeugt werden.

AWT vs. Swing Bearbeiten

  • Swing hat mehr Komponenten als AWT
  • Schaltflächen und Labels in Swing nehmen Symbole auf, die um Text angeordnet werden können.
  • Swing-Komponenten können beliebig geformt sein; eine Schaltfläche kann wie unter MacOS abgerundet sein
  • jede Swing-Komponente kann einen Rahmen bekommen

Container- und Steuerelemente Bearbeiten

Die Top-Level-Container Bearbeiten

Die Grundidee der Benutzeroberflächen in Java ist das Prinzip der Container. In einem Container einer Java-Benutzeroberfläche kann man ebenso andere Container und/oder Steuerelemente platzieren. Diese werden dann auf dem Bildschirm dargestellt. Die Methode zum Hinzufügen eines Containers und/oder eines Steuerelementes lautet add(Component comp).

Da Container aus Containern bestehen und demnach wie eine Zwiebel geschachtelt sind, stellt sich die Frage nach der äußeren Grenze der Schachtelung. Eine Benutzeroberfläche endet dort, wo der Rahmen des Fensters endet. Java hat an dieser Stelle den Begriff des Top-Level Containers eingeführt. Bei Objekten dieser Top-Level Container handelt es sich genau um diese äußeren Grenzen. Java kennt 4 Top-Level Container, die nun etwas näher erläutert werden.

JFrame Bearbeiten

Ein JFrame besitzt einen Titel, einen Rahmen sowie Schaltflächen zum Minimieren,Maximieren und zum Schließen. Die Abbildung zeigt einen JFrame, der noch nicht mit Inhalten gefüllt ist.

JFrame-0

Ein leeres JFrame

JDialog Bearbeiten

Ein JDialog ist ein Dialogfenster, welches einen Titel, einen Rahmen und eine Schaltfläche zum Schließen des Dialogs besitzt. Der Dialog besitzt besondere die Eigenschaft, dass er von einem Hauptfenster – meist von einem JFrame – abhängig sein kann. Die Abhängigkeit besteht darin, dass man zuerst den Dialog schließen muß, bevor man das Hauptfenster weiter bedienen kann.

JDialog

JDialog Fenster

JWindow Bearbeiten

Ein JWindow besitzt weder Titel- noch Menüleiste und kann überall auf dem Desktop platziert werden. In der Abbildung ist ein JWindow zusehen, welches innerhalb eines JFrames platziert wurde.

JWindow

JWindow Fenster

JApplet Bearbeiten

Ein JApplet kann verwendet werden, wenn die Anwendung im Browser (eingebettet in eine HTML-Seite) laufen soll. Es besitzt im Gegensatz zu den anderen Top-Level Containern nämlich die besondere Eigenschaft, von einem HTML-Code aus aufrufbar zu sein. Ein Applet besitzt daher auch keine Titelleiste, kann aber sehr wohl eine Menüleiste haben. Sie besitzen im Gegensatz zu den anderen Containern zusätzliche Methoden, die eine Verwendung in Websites vereinfachen.

Steuerelemente Bearbeiten

Die Steuer- oder auch Bedienelemente sind zur Erstellung einer grafischen Benutzeroberfläche (GUI) unerlässlich und dienen zur Interaktion mit dem Anwender. Um Steuerelemente darstellen zu können muss zunächst ein Top-Level-Container erzeugt werden, dem sie zugewiesen werden können.

Jedes Steuerelement ist eine Swing-Klasse mit einer Vielzahl von Methoden.

Textfelder Bearbeiten

JLabel Bearbeiten

Bei einem JLabel handelt es sich um ein Textfeld, welches zur Darstellung eines statischen Textes dient. Das heißt die Texte werden nur von der Anwendung gesetzt und können von einem Benutzer nicht durch eine Texteingabe verändert werden.

JTextField Bearbeiten

Das JTextField ist ein Feld zur Eingabe von beliebigen Zeichen, die im Textfeld dargestellt werden.

JTextField

Ein JTextField

JTextArea Bearbeiten

Die JTextArea ist ein Feld zur Eingabe von beliebigen Zeichen, die über mehrere Zeilen gehen kann. Sollte die Gefahr bestehen, dass die Anzahl der Zeilen und/oder Zeichen im Textfeld nicht ausreichen, kann es zusätzlich mit einem Scoll-Balken (JScrollBar) umhüllt werden.

JPasswordField Bearbeiten

Ein Passwortfeld verhält sich wie ein normales TextField, jedoch wird die Eingabe durch ein vorgegebenes Zeichen ersetzt. Kennwörter werden dadurch nicht auf dem Bildschirm im Klartext dargestellt.

JPasswordField

Ein JPasswordField

JFormattedTextField

Das JFormattedTextField verhält sich wie ein JTextField, jedoch wird die Eingabe in einer vorgefertigten Maske getätigt. Dieses Feld ist besonders geeignet zur Eingabe von Telefonnummern oder ISBN-Nummern.

Auswahlfelder Bearbeiten

JCheckBox und JRadioButton Bearbeiten

Mit einem quadratischen Kontrollkästchen kann eine Option aus- oder abgewählt werden. Ein Kontrollkästchen wird durch die Swing-Klasse JCheckBox realisiert. Soll eine Option aus mehreren Optionen (1-aus-n Auswahl) ausgewählt werden, so wird ein runder JRadioButton verwendet. Um die Auswahl zu realisieren, müssen die möglichen Optionen in einem Objekt der Klasse ButtonGroup zusammengefasst werden. Dadurch werden die JRadioButton-Objekte zusammengefasst.

JCheckBox

Ein JFrame mit Checkboxen und Radio Buttons

JComboBox Bearbeiten

Eine Dropdown-Liste, die zur Auswahl eines Elementes aufgeklappt wird. Wenn die JComboBox editierbar ist, kann über ein Textfeld der ausgewählte Wert auch vom Anwender gesetzt werden.

JSpinner Bearbeiten

Ein JSpinner ähnelt stark der JComboBox. Allerdings klappt die Liste nicht auf, sondern die Navigation durch die Liste erfolgt über Pfeiltasten.

JSlider Bearbeiten

Ein Schieberregler, der mit einer Skala versehen werden kann.

JSlider

Ein JSlider

Listen und Tabellen Bearbeiten

JList Bearbeiten

Die Komponente JList verwendet ein Datenmodell, in dem die gültigen Eingaben festgehalten werden. Sie dient zur Anzeige einer Liste und zur Auswahl einzelner darin befindlichen Elemente. Üblicherweise wird die JList verwendet, wenn mehrere Einträge ausgewählt werden können. Es ist aber auch möglich, festzulegen, dass nur maximal ein Eintrag selektiert werden kann.

JList

Eine JList

JTable Bearbeiten

Bei der JTable handelt es sich um eine 2-dimensionale Tabelle, wie man sie aus Tabellenkalkulationsprogrammen kennt (z.B. Excel). JTable ist eines der komplexesten Steuerelemente und sollte daher nicht als Einstieg in die GUI-Programmierung verwendet werden.

Weitere Steuerelemente Bearbeiten

JButton Bearbeiten

Bei einem JButton handelt es sich um eine Schaltfläche, die einen Text und/oder ein Symbolbild beinhalten kann.

JButton

Ein JFrame mit drei JButtons

JOptionPane Bearbeiten

Bei der JOptionPane können verschiedene Dialoge erstellt werden. Hierbei handelt es sich meist um eine Frage, auf die mit „Ja“ oder „Nein“ bzw. mit „Ja“, „Nein“ oder „Abbrechen“ bzw. auch nur mit „OK“ geantwortet werden kann.

JOptionPane

Ein JOptionPane

JFileChooser Bearbeiten

Der JFileChooser ist ein Dialog, der bereits vorgefertigt vorliegt. Dieser Dialog greift auf das Dateisystem des Computers zu, so dass in die Verzeichnisse navigiert und eine Datei ausgewählt werden kann.