16.09.2017 Aufrufe

Vorkurs Informatik

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

10.3 Beispiel für einfache Grafikbefehle 199<br />

Aufgabe 10.5:<br />

In Kapitel 7 sollte eine Klasse Ampel programmiert werden (Aufgabe 7.3). Erweitern Sie die Klasse Ampel<br />

um eine grafische Anzeige der Ampel, bei der die Signallampen durch Kreise entsprechender Farbe<br />

repräsentiert werden.<br />

a) Orientieren Sie sich an dem Quellcode 10.5 und zeichnen Sie drei Kreise in den entsprechenden<br />

Farben Grün, Gelb und Rot. Der Befehl zum Zeichnen von Ovalen lautet:<br />

fillOval(int x, int y, int width, int height)<br />

Die Methode benötigt vier Parameter:<br />

• x/y-Koordinate zum Zeichnen des Ovals. Die Koordinate entspricht der linken oberen Ecke, wenn<br />

das Oval durch ein Rechteck umschrieben wird.<br />

• Breite (width) und Höhe (height) des Ovals. Sofern width=height, liegt ein Kreis vor.<br />

b) Ergänzen Sie die Darstellung um zwei Knöpfe, jeweils einen für die Fußgänger und einen für die<br />

Autofahrer.<br />

c) Unter Verwendung der Prinzipien der Ereignisverarbeitung kann nun eine einfache Ampelsteuerung<br />

aus Sicht der Autofahrer realisiert werden. Wird der Knopf „Fussgaenger“ gedrückt sollte die Ampel,<br />

unter Beachtung der Farbphasen, auf rot gestellt werden. Im Falle, dass der Knopf „Autofahrer“<br />

gedrückt wird, auf grün.<br />

10.3.2 Beispiel 2: Linien<br />

Das vorhergehende Beispiel vermittelte einen Eindruck der Grafikmöglichkeiten von Java und<br />

dessen Realisierung. Sehen wir uns noch ein zweites Beispiel zur Verwendung der Grafikmöglichkeiten<br />

an. Realisiert werden soll ein, zugegeben sehr einfaches Grafikprogramm, das erlaubt,<br />

Linien mit der Maus auf dem Bildschirm zu zeichnen. Die Farbe der Linien soll dabei bei jeder<br />

Aktualisierung zufällig verändert werden.<br />

Neben den bereits bekannten Konzepten wird das Programm auch wieder partielle Erweiterungen<br />

beinhalten. Wenn wir uns die Funktionen des MouseListener ansehen, fällt auf, dass dieses Interface<br />

nur Mouseklicks abfragt, Bewegungen der Mouse werden nicht registriert. Auch für diese<br />

Funktionalität stellt Java ein spezielles Interface bereit. Der Name des bewegungsregistrierenden<br />

Interfaces ist MouseMotionListener. Die zugehörigen Methoden sind mouseDragged und<br />

mouseMoved. Beide Methoden registrieren Mausbewegungen, wobei die erste Bewegungen nur<br />

bei gedrückter Maustaste erfasst. Intuitiv sollte das Prinzip zum Zeichnen von Linien bereits<br />

erkennbar sein. Das Setzen des Anfangspunktes der Linie wird durch die Methode mousePressed<br />

(Interface MouseListener) erkannt, das Festlegen des Endpunkts (bei gedrückter Maustaste)<br />

durch die Methode mouseDragged (Interface MouseMotionListener). Eingebettet in ein<br />

Java-Programm ergibt sich der Quellcode 10.6.<br />

1 import java.awt.*;<br />

2 import java.awt.event.*;<br />

3 import javax.swing.*;<br />

4 import java.awt.geom.Line2D;<br />

5 import java.util.Vector;<br />

6

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!