/ Published in: Java
Expand |
Embed | Plain Text
import java.awt.Color; import java.awt.Graphics; import java.awt.event.MouseEvent; import berdux.MeineKleineStrasseBasis; import shape.ShapeBase; import shape.Haus; import shape.Baum; import shape.HinterGr; /** * GC - T1 * * Testat 4: Meine kleine Strasse * * Stellt die Methoden zum Zeichnen der Strasse zur Verfügung. * Erweitert die Klasse MeineKleineStrasseBasis. Bei Mausklick * wird überprüft ob die geklickte Position ein Haus ist. * * Veranlasst das erneute Zeichen über paint nach einem Mausklick. * * @author Markus Tacker <[email protected]> * @author Philipp Siegmund <[email protected]> * @version $Id: MeineKleineStrasse.java 114 2010-01-22 10:36:07Z m $ */ public class MeineKleineStrasse extends MeineKleineStrasseBasis { private ShapeBase[] shapes; /** * Übergabe der shape Argumente in ein Array zur Weiterverarbeitung von paint * */ public void start() { this.shapes = new ShapeBase [11]; this.shapes[1] = new Baum(0, 200, 80, 180); this.shapes[3] = new Baum(320, 280, 100, 100); this.shapes[4] = new Baum(350, 180, 150, 200); this.shapes[5] = new Baum(400, 260, 100, 120); this.shapes[9] = new Baum(875, 180, 150, 200); this.shapes[10] = new Baum(860, 260, 100, 120); } /** * Aufloesung der x, y-Position, an der Maus-Button betaetigt wurde. * * Umsetzung der Methode * @see java.awt.event.MouseListener#mouseClicked(java.awt.event.MouseEvent) * * @param e Maus-Ereignis, das ausgeloest wurde */ int x, y; x = e.getX(); // x-Koordinate, an der Mausereignis stattgefunden hat y = e.getY(); // y-Koordinate, an der Mausereignis stattgefunden hat for(int i = 0; i < this.shapes.length; i++) { if (this.shapes[i] instanceof Haus) { Haus currentHaus = (Haus)this.shapes[i]; currentHaus.lichtAendern(x, y); } } // nach jeder Veraenderung soll der Graphik-Kontext neu gezeichnet werden repaint(); } /** * Erhält alle Argument, die nötig sind um alle Shapes zu zeichen. * Zeichnet alle Shapes aus dem Array ShapeBase auf die Zeichenfläche * * @param g Grafik-Objekt */ { g.clearRect(0, 0, g.getClipBounds().width, g.getClipBounds().height); HinterGr.draw(g); for(int i = 0; i < this.shapes.length; i++) { this.shapes[i].paint(g); } } /** * Zeichnet erneut Shapes auf die Zeichenfläche * * @param g Grafik-Objekt * */ paint(g); } }
You need to login to post a comment.
