Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer, Dr. Gerhard Gröger, Dipl.-Ing. D. Dörschlag Einführung in die Programmierung mit Java.

Ähnliche Präsentationen


Präsentation zum Thema: "Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer, Dr. Gerhard Gröger, Dipl.-Ing. D. Dörschlag Einführung in die Programmierung mit Java."—  Präsentation transkript:

1 Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer, Dr. Gerhard Gröger, Dipl.-Ing. D. Dörschlag Einführung in die Programmierung mit Java 15. Vorlesung WS 2004/2005

2 Gröger, Dörschlag, Plümer - Einführung in Java - 1. Semester - WS 04/052 Übersicht Benutzeroberflächen –Interaktive Graphik –Änderung der Liniendicke

3 Gröger, Dörschlag, Plümer - Einführung in Java - 1. Semester - WS 04/053 Interaktives Zeichnen bisher: Zeichnen fest in paint programmiert –Objekte wurden in "paint" erzeugt und gemalt Interaktives Zeichnen: –Objekte werden durch Mausklick erzeugt und an Mausposition gezeichnet

4 Gröger, Dörschlag, Plümer - Einführung in Java - 1. Semester - WS 04/054 Interaktives Zeichnen: Übersicht Interaktives Zeichnen: 3 Schritte 1.Liste (LinkedList) mit zu zeichnenden Objekten (Shapes) –Liste ist Attribut des JFrame –Liste muss mit new im Konstruktor des JFrame erzeugt werden 2.in paint wird LinkedList durchlaufen und für jedes Shape darin die Methode draw aufgerufen 3.Die LinkedList wird mit Shapes gefüllt in z.B. Methode, die auf Mausklicks in JFrame reagiert –Klickkoordinaten: getX()/getY() des MouseEvents –Aufruf der Methode repaint() des JFrame löst Aufruf von paint() aus

5 Gröger, Dörschlag, Plümer - Einführung in Java - 1. Semester - WS 04/055 Interaktives Zeichnen - Beispiel I/II public class MeinFenster extends JFrame { LinkedList ll; //Attribut des JFrame public MeinFenster() { super(); ll = new LinkedList();...} public void paint(Graphics g){ super.paint(g); Graphics2D g2d = (Graphics2D) g; Iterator it = ll.iterator(); while(it.hasNext()) { Object o = it.next(); Shape s = (Shape) o; g2d.fill(s);}

6 Gröger, Dörschlag, Plümer - Einführung in Java - 1. Semester - WS 04/056 Interaktives Zeichnen - Beispiel II/II public void mouseClicked(java.awt.event.MouseEvent e) { ll.add(new Rectangle(e.getX(), e.getY(),5,8)); repaint(); }

7 Gröger, Dörschlag, Plümer - Einführung in Java - 1. Semester - WS 04/057 Änderung von Linieneigenschaften z.B. Dicke, Linienübergänge, Linienform (z.B. gestrichelt) Linieneigenschaften: Objekt der Klasse BasicStroke einfachster Konstruktor: BasicStroke(float width) Objekt von BasicStroke muss erzeugt werden und dem Graphics2D-Objekt mit Methode setStroke(BasicStroke) übergeben werden Beispiel: public void paint(Graphics g){ super.paint(g); Graphics2D g2d = (Graphics2D) g; g2d.setStroke(new BasicStroke(7));.....

8 Gröger, Dörschlag, Plümer - Einführung in Java - 1. Semester - WS 04/058 Liniendicke und Verbindungsart Konstruktoren ( hier interessante) BasicStroke stroke = new BasicStroke( width); BasicStroke stroke = new BasicStroke( float width, int cap, int join); Form des Linienendes (cap) : 1. CAP_BUT 2. CAP_ROUND 3. CAP_SQUARE Form des Linienverbindung (join) : 1. JOIN_BEVEL2. JOIN_MITER3. JOIN_ROUND Strichstärke (width)

9 Gröger, Dörschlag, Plümer - Einführung in Java - 1. Semester - WS 04/059 Liniendicke und Verbindungsart: Beispiel public void paint(Graphics g){ super.paint(g); Graphics2D g2d = (Graphics2D) g; g2d.setStroke( new BasicStroke(7, BasicStroke.CAP_SQUARE, BasicStroke.JOIN_MITER) );.....

10 Gröger, Dörschlag, Plümer - Einführung in Java - 1. Semester - WS 04/0510 Übungsaufgabe Programmiert ein JFrame, das auf Mausklick Kreise an der Klickposition darstellt. Die Liniendicke der Kreise soll interaktiv (Textfeld + Button) änderbar sein.


Herunterladen ppt "Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer, Dr. Gerhard Gröger, Dipl.-Ing. D. Dörschlag Einführung in die Programmierung mit Java."

Ähnliche Präsentationen


Google-Anzeigen