Ich habe vor kurzem an einem 2D-Spiel in Java gearbeitet und versuche derzeit, das Ereignisverarbeitungssystem richtig zu machen. Ich habe versucht, einen Mausklick zu bekommen, um eine Animation zu starten, und es funktionierte, bis ich versuchte, die Maus zu bewegen, während ich klickte. An diesem Punkt passiert überhaupt nichts. Ich benutze sowohl Mauslistener als auch Mousemotionlistener-Klassen, und das Problem besteht immer noch. Hier ist der Code von Main:
%Vor%Er ruft die Animator-Klasse auf, um die Bildergruppe einmal abzuspielen und anzuhalten. Der Animator arbeitete perfekt, bevor ich Mausereignisse einschloss. Ich kann nicht herausfinden, warum es während der Mausbewegung nicht funktioniert, wenn während dieser Mausbewegung keine bestimmte Aktion ausgeführt wird. (Wenn es eine offensichtliche Lösung gibt, entschuldige ich mich, ich habe vor nicht allzu langer Zeit Java gestartet.)
In Java wird ein Mausklick nur registriert, wenn die Maus gedrückt und losgelassen wird, ohne die Maus überhaupt zu bewegen. Dies ist für die meisten Benutzer schwierig, daher reagieren die meisten UI-Elemente (wie Schaltflächen) auf das Drücken und Loslassen der Maus und ignorieren das "Klicken".
Für eine Schaltfläche ist es jedoch eine bessere Option, ein ActionListener
hinzuzufügen. Dann hört die Schaltfläche selbst die Mausereignisse und entscheidet, wann sie angeklickt wurde.
Tags und Links java swing mouseevent actionlistener