GUI-Klassenhierarchie in Java (nur AWT), Hauptblatt (neben dem Hauptblatt gibt es ein Menüblatt) Zum Importieren des AWT = Abstract Window Toolkit sind folgende Befehle erforderlich: import java.awt.*; import java.awt.event.*; Graphics ist eine sehr mächtige Klasse! Sie hat viele draw-Methoden, z. B drawImage(). Siehe Doku. Der Weg zum Ziel: Durch Vererbung neue Components erschaffen und dort die paint()-Methode überschreiben. Siehe z. B. bei der Klasse Canvas (ganz rechts). viele weitere GUI-Komponenten (siehe Literaturhinweis unten rechts) Component Canvas public void paint (Graphics g) public void repaint () public boolean isDisplayable() Leere Komponente. Einziger Zweck: Davon erben, paint überschreiben und so im Canvas malen oder Bilder anzeigen. Dabei die Methoden von Graphics verwenden. Diese Pfeile sollen für "ist ein" (Vererbung) stehen, obwohl das nach UML-Standard nicht korrekt ist: Die Pfeilspitze darf nicht ausgemalt sein.Aber die Textverarbeitung konnte es nicht besser. Label public void setText (String text) Container Button public void add (Component c) public void setLabel (String s) // Laut Doku ist der Rückgabewert "Component", aber warum, // weiß ich nicht. Tut einfach so, als ob er void wäre. public void setLayout (LayoutManager m) // LayoutManager ist ein Interface. Jede Instanz einer Klasse, die // LayoutManager implementiert, ist auch eine Instanz von // LayoutManager. In diesem Sinne wirkt "implements" wie "extends". public void addActionListener (ActionListener a) // ActionListener ist ein Interface. Jede // Instanz einer Klasse, die ActionListener // implementiert, ist auch eine Instanz von // ActionListener. Und nachdem diese beim // Button angemeldet worden ist, wird nach // jedem Klick ihre actionPerformed()// Methode ausgeführt! Window public void addWindowListener (WindowListener w) // WindowListener ist ein Interface. Jede // Instanz einer Klasse, die WindowListener // implementiert, ist auch eine Instanz von // WindowListener. public void pack() // Das Fenster und alle seine Subkomponenten // "displayable" machen public void hide() public void show() Panel // "Panel is the simplest container class.A panel provides // space in which an application can attach any other // component, including other panels. Applet public void init () public void paint (Graphics g) //von Component // Java-Applets haben Applet als Oberklasse. Nahezu jedes // Applet überschreibt die init()- und die paint()-Methode. // init() wird automatisch vom Konstruktor aufgerufen. // paint() kann beliebig oft ausgeführt werden. Im Code dafür // aber nicht paint(), sondern repaint() benutzen! Frame // "A Frame is a top level window with a title and // a border" (Java-Doku) // Daran denken, dass Änderungen des Fensters oder // der darin einthaltenen Komponenten // oft erst nach einem repaint() sichtbar werden! public void setMenuBar (MenuBar m) Bei Verwendung von AWT ist die Hauptkomponente eines Java-GUI-Programms entweder ein Frame oder ein Applet. Dort werden alle anderen GUI-Elemente eingefügt. Um das Prinzip der GUI-Programmierung zu verstehen, reichen wenige Komponenten aus. Weitere GUI-Elemente findet ihr in der Literatur, z. B. Guido Krüger: Handbuch der Java-Programmierung ("Go To Java 2"), Kapitel 32. Dieses Online-Buch findet ihr auf eurer CD.