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