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 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 AWT ist plattformunabhängig. Java Programm API application programming interface Java AWT Native GUI Mac, Windows, Unix… Display Aussehen plattformabhängig DISPLAY 3D – Seminar Christian Schneider Komponenten sind die AWT-Grundlage. 3D – Seminar Christian Schneider Menüs stammen von MenuComponent ab. 3D – Seminar Christian Schneider Buttons, Listen & Co. Die Bausteine der grafischen Benutzeroberfläche des AWT 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 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 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 3D – Seminar usw... Christian Schneider Grafikdarstellung mittels AWT Graphics-Klasse, Canvas und Methoden 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 3D – Seminar Methode paint() Programmierer muss paint() überschreiben. 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 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 Habe Noch fertig! Fragen? [email protected] 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