Um im Canvas auf die Ereignisse unserer Hauptklasse reagieren zu können, müssen wir dort erst einmal ein paar Änderungen vornehmen, bevor wir zur Einbindung in die itemStateChanged-Methode kommen können.
Als erstes benötigen wir zusätzliche Eigenschaften unserer Canvas-Klasse. Eine davon war bereits angelegt:
private Color farbe = Color.black;
Damit haben wir in unseren Zeichenmethoden mit der setColor-Methode die Zeichenfarbe gesetzt. Die Voreinstellung ist schwarz.
Außerdem benötigen wir eine weitere Eigenschaft, die uns die Speicherung des Zustandes, ob gefüllt gezeichnet werden soll, erlaubt:
private boolean Füllmodus = false;
Hier ist die Voreinstellung false, was unserer Voreinstellung in der Hauptklasse entspricht.
Die Methoden vollesRechteck() und volleEllipse() brauchen wir nicht mehr, wir können Sie also ersatzlos löschen.
Aufgabe:Erstellen Sie in gewohnter Manier in der Methode mouseDragged die Zeichenmodi 11 und 12, die ein gefülltes Quadrat und einen gefüllten Kreis zeichnet. |
Nun müssen wir noch in Abhängigkeit von der Eigenschaft Füllung in den Methoden Rechteck(), usw. den Zeichenmodus auswählen. Das Realisieren wir mit einem if. Das wird hier am Beispiel der Methode Rechteck demonstriert:
public void Rechteck() { if (Füllmodus) modus=6; else modus=3; }
Aufgabe:Verändern Sie entsprechend die Methoden Ellipse(), Quadrat() und Kreis(). |
© Ralph-Erich Hildebrandt, 26. April 2004