Java-Kurs - 13. Übung Benutzeroberflächen und Graphik • Frames (Fenster) • Buttons (Schaltflächen) • einfache Graphik Benutzeroberflächen: Möglichkeiten • Abstract Windowing Toolkit (AWT) • einfache, grundlegende Grafikfunktionen • wird auch für Internet-Applikationen verwendet • Swing (neu in Java 2) • umfangreiche Bibliotheken für die Gestaltung und Behandlung komplexer Benutzeroberflächen • Grafikdarstellung: Java 2D, Java 3D • Nachteil: kann nicht (direkt) für InternetAnwendungen verwendet werden Klassenhierarchie AWT beliebige graphische Entitäten Component (from awt) Container eigenständige Programme „Toplevel Fenster“ Fenster mit Bedienelementen geschachtelte Komponenten (from awt) Window eingebettete Programme Panel (from awt) (from awt) Frame Dialog (from awt) (from awt) „Sind sie sicher? Ja/Nein“ Applet (from applet) FileDialog (from awt) Erzeugen eines Frame • Frame: Fenster mit Bedienelementen • vordefinierte Klasse java.awt.Frame (bei Swing: javax.swing.JFrame) • New from Template - AWT Forms - Frame • erzeugt java-Datei und Form (Fenster) Erzeugen eines Button I • Button einfügen (GUI Editing) • Code erzeugen, z.B. Reaktion auf Klick: Erzeugen eines Button II • Code wird generiert (Methode von MyFrame): private void button1MouseClicked (java.awt.event.MouseEvent evt) { // Add your handling code here: } • Code ergänzen, z.B. setTitle("Hallo Welt"); oder setSize(400,300); Erzeugen eines Button II • Code wird generiert (Methode von MyFrame): private void button1MouseClicked (java.awt.event.MouseEvent evt) { // Add your handling code here: setTitle("Hallo Welt"); setSize(400,300); } • Code ergänzen, z.B. setTitle("Hallo Welt"); oder setSize(400,300); Dokumentation: Javadoc • Übersicht über Klassen und Methoden: Öffnen der Datei c:\Programme\jdk1.3\docs\api\index.html Graphik mit AWT • Java hat die vollständige Kontrolle über das Fenster, d. h. • kein automatisches Rekonstruieren des Fensterinhaltes nach Überdeckung oder nach Verschieben. • Aber: zu jedem Fenster ist (durch die Klasse Frame) die Methode paint definiert • paint wird vom System automatisch aufgerufen, wenn der Fensterinhalt von einer Veränderung betroffen ist Die Methode Paint • Die Ausgabe in ein Fenster sollte durch die Überlagerung der Methode paint erfolgen (Polymorphismus) • paint bekommt beim Aufruf eine Instanz der Klasse Graphics übergeben. • (diese referenziert die eigentliche Zeichenfläche) • Definition von paint: public void paint (Graphics g) { .... } Überlagerung der Methode paint Component paint() Container (from awt) Window Panel (from awt) Frame Dialog (from awt) (from awt) Applet (from applet) MyFrame FileDialog (from awt) paint() Zeichen von Linien public void paint (java.awt.Graphics g) { int i; g.setColor(java.awt.Color.red); setSize(300, 400); for (i=0; i<=300; i=i+10) g.drawLine(20,35+i,300-i+20,35); System.out.println("paint wurde aufgerufen!"); } } Anfangspunkt (x, y) Endpunkt (x, y) Hausaufgabe 11 Zeichnen Sie in einem Frame das Haus vom Nikolaus