Transcript
Page 1: AWT – Detailbetrachtung Java 3D – Seminar im Wintersemester 2002/2003 Christian Schneider

AWT – Detailbetrachtung

Java 3D – Seminarim Wintersemester 2002/2003

Christian Schneider

Page 2: AWT – Detailbetrachtung Java 3D – Seminar im Wintersemester 2002/2003 Christian Schneider

3D – Seminar 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

Page 3: AWT – Detailbetrachtung Java 3D – Seminar im Wintersemester 2002/2003 Christian Schneider

Einführung ins AWT

Was IST denn AWT???

Page 4: AWT – Detailbetrachtung Java 3D – Seminar im Wintersemester 2002/2003 Christian Schneider

3D – Seminar Christian Schneider

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“

Page 5: AWT – Detailbetrachtung Java 3D – Seminar im Wintersemester 2002/2003 Christian Schneider

3D – Seminar Christian Schneider

JavaProgramm

JavaProgramm

JavaAWT

JavaAWT

Native GUI

Mac, Windows, Unix…

Native GUI

Mac, Windows, Unix…

AWT ist plattformunabhängig.

Display

APIapplication

programming interface

APIapplication

programming interface

Aussehenplattform-abhängig

Aussehenplattform-abhängig

DISPLAY

Page 6: AWT – Detailbetrachtung Java 3D – Seminar im Wintersemester 2002/2003 Christian Schneider

3D – Seminar Christian Schneider

Komponenten sind dieAWT-Grundlage.

Applet!!!

add()

Page 7: AWT – Detailbetrachtung Java 3D – Seminar im Wintersemester 2002/2003 Christian Schneider

3D – Seminar Christian Schneider

Menüs stammen von MenuComponent ab.

Page 8: AWT – Detailbetrachtung Java 3D – Seminar im Wintersemester 2002/2003 Christian Schneider

Buttons, Listen & Co.

Die Bausteine der grafischen Benutzeroberfläche des AWT

Page 9: AWT – Detailbetrachtung Java 3D – Seminar im Wintersemester 2002/2003 Christian Schneider

3D – Seminar Christian Schneider

AWT hat VIELE Komponenten.

Page 10: AWT – Detailbetrachtung Java 3D – Seminar im Wintersemester 2002/2003 Christian Schneider

3D – Seminar Christian Schneider

AWT delegiert Ereignisse.

Der Benutzer macht Mausklicks Tastaturanschläge Mausbewegungen

Das Betriebssystem erzeugtein Ereignis (Event)

AWT erhält dieses Ereignis unddelegiert es weiter…

DELEGATION EVENT MODELL

Page 11: AWT – Detailbetrachtung Java 3D – Seminar im Wintersemester 2002/2003 Christian Schneider

3D – Seminar Christian Schneider

Lauschet den Quellen!

ActionListener

MouseListener

KeyListener

Quellemit der der Anwender interagiert

Lauscherder Ereignis bearbeitet

Page 12: AWT – Detailbetrachtung Java 3D – Seminar im Wintersemester 2002/2003 Christian Schneider

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 (Beispiel folgt im Anschluss) b1.addActionListener(this); hier wird beim Knopf b1 nach Events gelauscht

Page 13: AWT – Detailbetrachtung Java 3D – Seminar im Wintersemester 2002/2003 Christian Schneider

3D – Seminar Christian Schneider

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 usw...

MouseMotionListener MouseMotionAdapter

ItemListener -

TextListener -

WindowListener WindowAdapter

Page 14: AWT – Detailbetrachtung Java 3D – Seminar im Wintersemester 2002/2003 Christian Schneider

Grafikdarstellungmittels AWT

Graphics-Klasse, Canvasund Methoden

Page 15: AWT – Detailbetrachtung Java 3D – Seminar im Wintersemester 2002/2003 Christian Schneider

3D – Seminar Christian Schneider

Der Künstler brauchtWerkzeug… 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.

Page 16: AWT – Detailbetrachtung Java 3D – Seminar im Wintersemester 2002/2003 Christian Schneider

3D – Seminar Christian Schneider

Canvas, die kann was…

Bereich, in dem gezeichnet wird.

(0,0)

Y

X

(width-1, height-1)

drawLine(30,20,80,100)

(30,20)

(80,100)

Page 17: AWT – Detailbetrachtung Java 3D – Seminar im Wintersemester 2002/2003 Christian Schneider

3D – Seminar Christian Schneider

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);

}}// Canvas in Fenster aufnehmenMeineCanvas myCanvas = new MeineCanvas();xyPanel.add(myCanvas);

100,50

150,15050,150

Page 18: AWT – Detailbetrachtung Java 3D – Seminar im Wintersemester 2002/2003 Christian Schneider

3D – Seminar Christian Schneider

Noch Fragen?Habe fertig!

Quellen

[email protected]

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 java.sun.com


Recommended