Grafische Oberflächen mit AWT

Einführung - Grafische Oberflächen mit AWT    Grafische Elemente erzeugen und anordnen    Grafische Elemente in Beispielen    Grafische Elemente anordnen - Layoutmanager    Jetzt soll auch was passieren - Ereignisbehandlung     Ereignisbehandlung in Beispielen

Die Kommunikation zwischen Anwender und Programm funktioniert über eine Oberfläche. In aktuellen (2018) Programmen sind das Eingabebereiche, Buttons, Menüs, Scrollbars (Bildlaufleisten), Auswahlfelder usw.
Mit AWT (abstract window toolkit) stellt Java Klassen bereit, aus denen fertige Elemente für Oberflächen eingesetzt werden können.
Hier sollen beispielhaft einige Oberflächen entwickelt werden.

Merke:
Im Schnitt schreibt man 80% des Quellcodes ausschließlich zur Gestaltung der grafischen Oberfläche.
Bleiben gerade mal 20% für die eigentlichen Funktionen des Programms.

Erzeugung einer Oberfläche

Mit Hilfe existierender Klassen bastelt man sich zunächst eine Oberfläche zusammen.

Die Grundstruktur

01 import java.awt.*;
02
03 /**
04 Mein erstes Javaprogramm mit grafischer Oberfläche
05 */
06
07 public class GrafischeOberflaeche01 extends Frame {
08
09 public GrafischeOberflaeche01() {
10 this.setSize(400,300);
11 this.setTitle("Ich bin eine grafische Oberfläche");
12 this.setVisible(true);
13 }
14
15 public static void main(String[] args) {
16 GrafischeOberflaeche01 programm = new GrafischeOberflaeche01();
17 }
18 }
19
20
Quelltext: GrafischeOberflaeche01.java

Erläuterung zum Quelltext

Zeile 01 Java funktioniert nach dem Baukastenprinzip. Die Klassen, die ich verwenden möchte, muss ich vorher importieren. Nach dem Import kann ich die Klasse mit allen Möglichkeiten verwenden.
In der Dokumentation zur Klasse Frame steht ganz oben, dass ich die Klasse in dem Zweig java.awt.Frame finde. Daraus ergäbe sich die Importanweisung: import java.awt.Frame;
Da ich später noch mehrere Elemente des AWT benutzen möchte, importiere ich mit
import java.awt.*; gleich alle Elemente.
Zeile 03-05 Das Kommentieren spielt in Java eine sehr große Rolle. Jeder Programmierer kommentiert seine Klassen.
Beginnt ein Kommentar mit /** , so handelt es sich um einen Dokumentationskommentar. Das Tool javadoc (im Ordner bin) kann aus diesen Kommentaren eine Dokumentation in Form einer Webseite generieren, die man anderen Programmierern zur Verfügung stellen kann.
Zeile 07-18 Das ist die eigentlich Klasse
Die einfache Klassendefinition wird mit der Anweisung extends Frame ergänzt.
Damit erweitert meine Klasse GrafischeOberflaeche01 die Möglichkeiten der Klasse Frame. Wenn ich nichts weiter programmiere, dann kann meine Klasse mindestens alles, was die Klasse Frame kann.
Zeile 09-13 Um aus der Klassendefinition ein Objekt erzeugen zu können, schreibe ich die Konstruktormethode.
Zeile 10-12 In der Dokumentation der Klasse Frame findet man unter "Method Summary" Methoden, die man für seine Klasse einfach verwenden darf. Hier das Einstellen der Framgröße (setSize), das Schreiben des Titels in die Titelleiste des Frames (setTitle) und das Sichtbarmachen des Frames (setVisible, in der Dokumentation steht, dass der Konstruktor der Klasse Frame unsichtbare Objekte erzeugt.).
Das Schlüsselwort this bezieht sich auf das Objekt, welches durch Aufruf der Konstruktormethode erzeugt (instanziiert) wird.
Zeile 15-17 Damit mein Programm nach dem Aufruf etwas ausführt, wird eine Startmethode benötigt.

Und so sieht das erste Programm aus:

erste grafische Oberfläche

Ein ernüchterndes Ergebnis für so viel Programmcode. Und es kommt noch schlimmer.

Einführung - Grafische Oberflächen mit AWT    Grafische Elemente erzeugen und anordnen    Grafische Elemente in Beispielen    Grafische Elemente anordnen - Layoutmanager    Jetzt soll auch was passieren - Ereignisbehandlung     Ereignisbehandlung in Beispielen

zurück zur Hauptseite Informatik