 
                                AWT –
Detailbetrachtung
Java 3D – Seminar
im Wintersemester 2002/2003
Christian Schneider
Agenda
1
EINFÜHRUNG INS AWT
2
DIE BAUSTEINE DER GRAFISCHEN
BENUTZEROBERFLÄCHE DES AWT
3
DAS EVENT-MODELL DES AWT
4
GRAFIKAUSGABE
3D – Seminar
Christian Schneider
1
Einführung ins AWT
Was IST denn AWT???
AWT belebt das GUI.
 AWT ist das
Abstract Window Toolkit.
 AWT notwendig für das GUI
 Ein Teil des Java 2 SDK (Software Development Kit)
 Sammlung vieler Klassen und Methoden
(java.awt.*)
 Einsatz in Applikationen und Applets möglich
 „Baukastensystem“
3D – Seminar
Christian Schneider
2
AWT ist plattformunabhängig.
Java
Java
Programm
Programm
API
API
application
application
programming
programming
interface
interface
Java
Java
AWT
AWT
Aussehen
Aussehen
plattformplattformabhängig
abhängig
Display
Native
NativeGUI
GUI
Mac,
Mac,Windows,
Windows,
Unix…
Unix…
DISPLAY
3D – Seminar
Christian Schneider
Komponenten sind die
AWT-Grundlage.
add()
Ap
p
3D – Seminar
le t
!!!
Christian Schneider
3
Menüs stammen von
MenuComponent ab.
3D – Seminar
Christian Schneider
Buttons, Listen & Co.
Die Bausteine der grafischen
Benutzeroberfläche des AWT
4
AWT hat VIELE Komponenten.
3D – Seminar
Christian Schneider
AWT delegiert Ereignisse.
 Der Benutzer macht
Mausklicks
Tastaturanschläge
Mausbewegungen
 Das Betriebssystem erzeugt
ein Ereignis (Event)
 AWT erhält dieses Ereignis und
delegiert es weiter…
DELEGATION EVENT MODELL
3D – Seminar
Christian Schneider
5
Lauschet den Quellen!
ActionListener
MouseListener
KeyListener
Quelle
Lauscher
mit der der Anwender interagiert
der Ereignis bearbeitet
3D – Seminar
Christian Schneider
EventListener definieren und
registrieren…
 java.awt.event importieren
Klassen und Interfaces für Event-Handling
 Event-Lauscher definieren
eigene Klasse definieren, die ein Listener-Interface implementiert
 Lauscher für Quelle registrieren
3D – Seminar
(Beispiel folgt im Anschluss)
b1.addActionListener(this);
hier wird beim Knopf b1 nach Events gelauscht
Christian Schneider
6
Jedem Event sein Listener!
Listener Interface
Adapter-Klasse
Methoden
ActionListener
-
actionPerformed(ActionEvent)
FocusListener
FocusAdapter
focusGained(FocusEvent)
focusLost(FocusEvent)
KeyListener
KeyAdapter
keyPressed(KeyEvent)
keyReleased(KeyEvent)
keyTyped(KeyEvent)
MouseListener
MouseAdapter
MouseMotionListener
MouseMotionAdapter
ItemListener
-
TextListener
-
WindowListener
WindowAdapter
usw...
3D – Seminar
Christian Schneider
Grafikdarstellung
mittels AWT
Graphics-Klasse, Canvas
und Methoden
7
Der Künstler braucht
Werkzeug…
 eine Zeichenfläche
Æ
prinzipiell jede Komponente möglich
spezieller Teilbereich ist sinnvoll
Canvas-Komponente
 Zeichenmethoden
Æ
Linien, Kreise, Rechtecke, Text usw.
Graphics-Klasse
 Methode zum Aufrufen der Zeichenmethoden
Methode paint()
Programmierer muss paint() überschreiben.
3D – Seminar
Christian Schneider
Canvas, die kann was…
X
(0,0)
(30,20)
drawLine(30,20,80,100)
(80,100)
Bereich, in dem gezeichnet wird.
Y
3D – Seminar
(width-1, height-1)
Christian Schneider
8
Eigene Canvas ableiten,
paint() überschreiben!
class MeineCanvas extends Canvas
{
// paint überschreiben!!!
public void paint(Graphics g)
{
g.setColor(Color.green);
int xCo[] = {100,150,50,100};
int yCo[] = {50,150,150,50};
int n = xCo.length;
g.fillPolygon(xCo, yCo, n);
}
50,150
}
// Canvas in Fenster aufnehmen
MeineCanvas myCanvas = new MeineCanvas();
xyPanel.add(myCanvas);
3D – Seminar
100,50
150,150
Christian Schneider
Quellen
 Java™ API – Band 2
offizielle Dokumentation von JavaSoft
 Java – Programmierung interaktiver
WWW-Seiten
Walter Doberenz / Uwe Druckenmüller
 Jetzt lerne ich Java
Dirk Louis / Peter Müller (Markt und Technik)
 Online Doku von Sun
3D – Seminar
java.sun.com
Christian Schneider
9