Methoden Event bei gedrückter Maustaste immer wieder ausführen

CptK

Bekanntes Mitglied
Hallo,
ich möchte dass ein Event bei gedrückter Maustaste immer wieder ausgeführt wird. Dazu habe ich jetzt einen MousmotionListner verwendet. Das Problem ist jetzt, dass das ganze nicht funktioniert, wenn man die Maus nicht bewegt. Gibt es da irgendeine Methode mit der ein Event bei gedrückter und (auch aber nicht immer) bewegter Maus ausführt? Das ist nochmal mein Code:
Java:
package Action;

import java.awt.event.*;
import java.util.Timer;
import java.util.TimerTask;

import Data.Spielerkugel;
import Game.Settings;
import Gui.Panel;

public class MouseMotionHandler implements MouseMotionListener {

    private Panel p;
    private double currenttimemillis = System.currentTimeMillis();
  
    public MouseMotionHandler(Panel panel) {
        p = panel;
    }
  
    @Override
    public void mouseDragged(MouseEvent e) {
        if(System.currentTimeMillis() > currenttimemillis + 150) {
            double w = p.getAngle() + 90;

            //Erstellt neue Kanonenkugel
            p.getKanonenkugeln().add(new Spielerkugel(w, 1, 1, 0.1, 15, Settings.spieler_damage, Settings.v0, p));
            currenttimemillis = System.currentTimeMillis();
        }
    }

    @Override
    public void mouseMoved(MouseEvent e) {
    
          
        }
    }
  
 

}
 
Das was du da beschreibst, also das Event während man einen Mausbutton gedrückt hält, kann man doch recht einfach über einen MouseListener realisieren mittels der beiden Methoden mousePressed und mouseReleased
mousePressed: Timer starten der irgendwas macht
mouseReleased: Timer beenden der irgendwas macht
 

Neue Themen


Zurück
Oben