Posted By

donfips on 01/22/10


Tagged

java oop this Objects fh Meine Kleine Strasse HS-RM Wiesbaden


Versions (?)

Meine Kleine Strasse


 / Published in: Java
 

  1. import java.awt.Color;
  2. import java.awt.Graphics;
  3. import java.awt.event.MouseEvent;
  4. import berdux.MeineKleineStrasseBasis;
  5. import shape.ShapeBase;
  6. import shape.Haus;
  7. import shape.Baum;
  8. import shape.HinterGr;
  9.  
  10.  
  11. /**
  12.  * GC - T1
  13.  *
  14.  * Testat 4: Meine kleine Strasse
  15.  *
  16.  * Stellt die Methoden zum Zeichnen der Strasse zur Verfügung.
  17.  * Erweitert die Klasse MeineKleineStrasseBasis. Bei Mausklick
  18.  * wird überprüft ob die geklickte Position ein Haus ist.
  19.  *
  20.  * Veranlasst das erneute Zeichen über paint nach einem Mausklick.
  21.  *
  22.  * @author Markus Tacker <[email protected]>
  23.  * @author Philipp Siegmund <[email protected]>
  24.  * @version $Id: MeineKleineStrasse.java 114 2010-01-22 10:36:07Z m $
  25.  */
  26.  
  27. public class MeineKleineStrasse extends MeineKleineStrasseBasis
  28. {
  29. private ShapeBase[] shapes;
  30.  
  31. /**
  32. * Übergabe der shape Argumente in ein Array zur Weiterverarbeitung von paint
  33. *
  34. */
  35. public void start()
  36. {
  37. this.shapes = new ShapeBase [11];
  38. this.shapes[1] = new Baum(0, 200, 80, 180);
  39. this.shapes[0] = new Haus(40, 140, 190, 240, new Color(202, 225, 255));
  40. this.shapes[2] = new Haus(200, 170, 150, 210, new Color(255, 215, 0));
  41. this.shapes[3] = new Baum(320, 280, 100, 100);
  42. this.shapes[4] = new Baum(350, 180, 150, 200);
  43. this.shapes[5] = new Baum(400, 260, 100, 120);
  44. this.shapes[6] = new Haus(480, 0, 185, 380, new Color(205, 198, 115));
  45. this.shapes[7] = new Haus(640, 90, 150, 290, new Color(0, 205, 0));
  46. this.shapes[8] = new Haus(785, 10, 115, 370, new Color(143, 188, 143));
  47. this.shapes[9] = new Baum(875, 180, 150, 200);
  48. this.shapes[10] = new Baum(860, 260, 100, 120);
  49.  
  50. }
  51.  
  52. /**
  53. * Aufloesung der x, y-Position, an der Maus-Button betaetigt wurde.
  54. *
  55. * Umsetzung der Methode
  56. * @see java.awt.event.MouseListener#mouseClicked(java.awt.event.MouseEvent)
  57. *
  58. * @param e Maus-Ereignis, das ausgeloest wurde
  59. */
  60. public void mouseClicked(MouseEvent e){
  61. int x, y;
  62.  
  63. x = e.getX(); // x-Koordinate, an der Mausereignis stattgefunden hat
  64. y = e.getY(); // y-Koordinate, an der Mausereignis stattgefunden hat
  65.  
  66. for(int i = 0; i < this.shapes.length; i++) {
  67. if (this.shapes[i] instanceof Haus) {
  68. Haus currentHaus = (Haus)this.shapes[i];
  69. currentHaus.lichtAendern(x, y);
  70. }
  71. }
  72.  
  73. // nach jeder Veraenderung soll der Graphik-Kontext neu gezeichnet werden
  74. repaint();
  75. }
  76.  
  77. /**
  78. * Erhält alle Argument, die nötig sind um alle Shapes zu zeichen.
  79. * Zeichnet alle Shapes aus dem Array ShapeBase auf die Zeichenfläche
  80. *
  81. * @param g Grafik-Objekt
  82. */
  83. public void paint(Graphics g)
  84. {
  85. g.clearRect(0, 0, g.getClipBounds().width, g.getClipBounds().height);
  86. HinterGr.draw(g);
  87. for(int i = 0; i < this.shapes.length; i++) {
  88. this.shapes[i].paint(g);
  89. }
  90. }
  91.  
  92.  
  93. /**
  94. * Zeichnet erneut Shapes auf die Zeichenfläche
  95. *
  96. * @param g Grafik-Objekt
  97. *
  98. */
  99. public void update(Graphics g){
  100. paint(g);
  101.  
  102. }
  103. }

Report this snippet  

You need to login to post a comment.