Java cooperation home
Tutorial
type and press Enter

Bearbeiten von Mausereignissen in Java 1.1 (Deprecated)

Achtung: Diese Art der Ereignissbehandlung ist in seit Java 1.2 als deprecated markiert und erzeugt beim Kompilieren eine Warnung / lässt sich mit 1.4 nicht kompilieren. Da aber viele noch Microsofts Internet Explorer 5 verwenden, dessen Virtual Maschine noch die JDK Version 1.1 verwendet ist diese Art der Ereignissbehandlung noch für viele Browser möglich und verwendbar. Solltet ihr aber mit euren Applets auf dem neusten Stand bleiben wollen, so verwendet bitte das in dem Kapitel neues Eventhandling beschriebene Verfahren. Dieses Kapitel ist allerdings ausführlicher so dass es vielleicht einige Dinge besser erklärt als das neue Kapitel!

Kein Spiel kommt ohne Interaktionen mit dem Spieler aus. In unserem Fall stehen dem Spieler zwei Möglichkeiten zur Verfügung, wie er in das Spielgeschehen eingreifen kann, nämlich mit der Maus oder mit der Tastatur seines Computers. In den nächsten zwei Kapiteln möchte ich zeigen, wie Maus- und Keyboardevents von Applets verarbeitet werden können. Wiederum ist dies in Applets leichter zu bewerkstelligen als in Konsolenanwendungen, daher kann man die von mir vorgestellten Methoden nicht eins zu eins in Konsolenanwendungen übertragen. In jedem guten Javabuch wird jedoch EventHandling ausführlich für Konsolenanwendungen behandelt (z. B. in dem Onlinebuch GoToJava: siehe Links), so dass man sich dieses Wissen leicht selbst aneignen kann.
Im folgenden möchte ich unser BallApplet so erweitern, dass der Ball auch dann seine Richtung ändert, wenn der Benutzer auf das Applet klickt.

Um dies zu verwirklichen muss man (in Applets!!) lediglich die Funktion mouseDown implementieren. Diese sollte in unserem Fall folgendermaßen aussehen:

    // Funktion zum Auffangen eines Mausklicks auf das Applet
    public boolean mouseDown (Event e, int x, int y)
    {
      // Umkehren des Richtungsvektors
      x_speed = - (x_speed);

      // Rückgabewert in diesem Fall unnötig, aber verlangt !!
      return true;
    }

Zusätzlich müsst ihr die run() - Methode noch ein wenig abändern, siehe dazu den Source Code zu diesem Kapitel!

Natürlich lassen sich nicht nur Mausklicks verarbeiten. Java stellt eine Reihe von Methoden zur Verfügung, die ich nun kurz vorstellen möchte. Sie alle können auf dieselbe Art und Weise wie oben gesehen in das Applet eingefügt werden:

  1. Mausklick:
    1. public boolean mouseDown (Event e, int x, int y): Fängt das Ereigniss auf, das entsteht, wenn die Maustaste gedrückt wird
    2. public boolean mouseUp (Event e, int x, int y): Fängt das Ereigniss auf, das entsteht, wenn die Maustaste losgelassen wird
    3. Mit der Variablen e.clickCount hat man zudem Zugriff auf die Anzahl der Clicks und kann somit auch Doppelklicks anders behandel als einfache Klicks
  2. Bewegen der Maus:
    1. public boolean mouseMove (Event e, int x, int y): Fängt das Ereigniss auf, das entsteht, wenn die Maus bewegt wird
    2. public boolean mouseDrag (Event e, int x, int y): Fängt das Ereigniss auf, das entsteht, wenn die Maus mit gedrückter Maustaste bewegt wird
  3. Mauspositionen:
    1. public boolean mouseEnter(Event e, int x, int y): Fängt das Ereigniss auf, das entsteht, wenn der Mauszeiger das Appletfeld "betritt"
    2. public boolean mouseExit (Event e, int x, int y): Fängt das Ereigniss auf, das entsteht, wenn der Mauszeiger das Appletfeld verlässt

Mit den Variablen int x und int y hat man zudem Zugriff auf die Koordinaten, an denen das Mausevent passiert ist, was natürlich für viele Spiele äußerst wichtig ist. Außerdem muss man darauf achten, dass die Methoden explizit einen Rückgabewert true oder false verlangen, der nicht immer eine Bedeutung für die Behandlug des Ereignisses hat. Es muss jedoch immer ein boolscher Wert zurückgegeben werden!

SourceCode download
Applet ansehen

Nächstes Kapitel

Tastaturereignisse
Fabian Birzele, 2001-2004.
web-design: Vadim Murzagalin, 2004.