Es gibt grundsätzlich zwei Ansätze, um auf Mausereignisse zu reagieren:
Jedes graphische Objekt hat die Methoden
onMouseEnter(double x, double y)
(wird aufgerufen, wenn sich der Mauszeiger in das Objekt hineinbewegt)onMouseLeave(double x, double y)
(wird aufgerufen, wenn sich der Mauszeiger aus dem Objekt hinausbewegt)onMouseDown(double x, double y, int key)
(wird aufgerufen, wenn sich der Mauszeiger über dem Objekt befindet und eine der Maustasten gedrückt wurde)onMouseUp(double x, double y, int key)
(wird aufgerufen, wenn sich der Mauszeiger über dem Objekt befindet und eine der Maustasten losgelassen wurde)onMouseMove(double x, double y)
(wird aufgerufen, wenn sich der Mauszeiger über dem Objekt befindet und bewegt)
Diese Methoden kann man in einer Unterklasse überschreiben und so auf die entsprechenden Ereignisse reagieren.
Tipps:
x
und y
der Ereignishandler sind die Koordinaten des Mauszeigers zum Zeitpunkt des Ereignisses key == 0
bedeutet linke Maustaste, key == 1
bedeutet mittlere Maustaste und key == 2
bedeutet rechte Maustaste. startTrackingEveryMouseMovement
bewirkt, dass fortan jedes Mausereignis zum Aufruf des entsprechenden Ereignishandlers beim Objekt führt, auch wenn sich der Mauszeiger außerhalb des Objekts befindet. stopTrackingEveryMouseMovement
beschränkt die Mausereignisse wieder auf diejenigen innerhalb des Objekts. Starte das Programm und verschiebe die Rechtecke mit der Maus!
Das Interface MouseListener
besitzt Methoden
void onMouseDown(double x, double y, int button)
(wird aufgerufen, wenn eine Maustaste nach unten gedrückt wird)void onMouseUp(double x, double y, int button)
(wird aufgerufen, wenn eine Maustaste losgelassen wird)void onMouseMove(double x, double y)
(wird aufgerufen, wenn der Mauszeiger sich bewegt)void onMouseEnter(double x, double y)
(wird aufgerufen, wenn der Mauszeiger sich in den Grafikbereich hineinbewegt)void onMouseLeave(double x, double y)
(wird aufgerufen, wenn der Mauszeiger sich aus dem Grafikbereich hinausbewegt)
Dabei bedeutet button == 1
: linke Maustaste, button == 2
: mittlere Maustaste und button == 3
: rechte Maustaste.
Wird das Objekt einer Klasse, die MouseListener
implementiert, beim World
-Objekt mittels seiner Methode addMouseListener
registriert, so werden die obigen Methoden aufgerufen, wenn die jeweiligen Mausereignisse auf dem Grafikbereich auftreten.
Starte das Programm und fahre mit der Maus über den Grafikausgabebereich! Probiere auch die linke Maustaste aus.