Java Reference
In-Depth Information
13.4.4 Die Maus als Zeichengerät
Die Eingabe numerischer Werte soll nun noch gänzlich durch Mausoperationen ersetzt
werden. Im jetzigen Stadium wird jede grafische Figur durch die Koordinaten der linken
oberen Ecke und bei flächigen Figuren der Breite und Höhe, bei Linien der Koordinaten
des Endpunktes durch Eingabe der numerischen Werte gezeichnet. Die vier erforderli-
chen Angaben können ebenso gut durch Mausaktionen beschrieben werden.
Die linke obere Ecke soll nun durch Drücken der Maustaste an dieser Position festgehal-
ten werden. Wird die Maus bei gedrückter Maustaste nach links unten verschoben und
an einer zweiten Position die Maustaste losgelassen, soll auch diese Position festgehal-
ten werden. Diese zweiten Koordinaten sollen den Endpunkt der zu zeichnenden Linie
bzw. die linke untere Ecke der zu zeichnenden Fläche beschreiben.
Es soll auf drei unterschiedliche Mausereignisse reagiert werden ( Tabelle 13.16 ).
Mausereignis
Auszulösende Aktion
13
Maustaste gedrückt
Koordinaten der linken oberen Ecke feststellen und in die
Textfelder übernehmen.
Ziehen der Maus bei
gedrückter Maustaste
Koordinaten der Breite und Höhe des aufgezogenen Recht-
ecks bzw. des Linienendpunktes feststellen und in die Text-
felder übertragen.
Maustaste loslassen
Wenn die Maus zuvor gezogen wurde, die entsprechende
Figur zeichnen.
Tabelle 13.16 Erweiterte Reaktionen auf Mausereignisse
Aktivieren Sie zuerst die beiden MouseListener -Methoden mousePressed und mouse-
Released und die MouseMoveListener -Methode mouseDragged . Das kleine Problem, dass
auf das Loslassen der Maustaste nur mit dem Zeichnen einer Figur reagiert werden soll,
wenn zuvor die Maus mit gedrückter Maustaste gezogen wurde, lösen Sie so, dass Sie
eine Boolesche Variable zeichnen mit dem Wert false initialisieren. Sie wird in der
mouseDragged -Methode auf true gesetzt und nach jedem Zeichnen direkt wieder auf
false umgestellt. Anhand des Status dieser Variablen können Sie in mouseDragged prü-
fen, ob gezeichnet werden muss.
Die folgende Methode reagiert auf das Drücken der Maustaste mit dem Speichern der
Koordinaten und der Übernahme der Werte in die Textfelder:
Search WWH ::




Custom Search