Ne Maus Event Frage

  • Themenstarter Themenstarter DaAngel
  • Beginndatum Beginndatum
Status
Nicht offen für weitere Antworten.
D

DaAngel

Gast
Hiho, ich hätte da ne Frage zu einem Maus Event.

Mein Problem ist folgendes: Ich möchte gern abfragen, ob eine Maustaste momentan gerückt ist bzw gehalten wird. Nagut, jetzt wird mir jeder sagen mousePressed ... und mouseReleased, aber soweit bin ich auch schon *g* und das geht ja auch alles soweit, aber mein Prob ist, dass ich mit mousePressesd in einer While-Schleife eine Methode aufrufe-->

Code:
class Render_this_mouseAdapter
    extends java.awt.event.MouseAdapter {
  Render adaptee;
  boolean p;

  Render_this_mouseAdapter(Render adaptee) {
    this.adaptee = adaptee;
  }

  public synchronized void mousePressed(MouseEvent e) {
      p = true;
     while(p){
         tuwas();
      }
  }
  
  public synchronized void mouseReleased(MouseEvent e) {
      p = false;
  }
}

Tja, nur das Problem ist, dass er aus der While-Schleife nicht mehr rauskommt, da die While-Schleife das Aufrufen von mouseReleased verhindert bzw. blockiert. Wie ihr seht hab ich es auch schon mit nem Monitor auf die Methoden versucht... aber hat leider nicht den gewünschten Effekt erbracht.

Könnte mir da jemand weiterhelfen?

mfg DaAngel
 
Jopp, das habe ich mir auch schon gedacht, aber meine Threadversuche sind leider daneben gegangen *g* Irgendwie war da ein Fehler drinnen, oder ich hab was falsch gemacht :s Könnte mir jemand ne kurze Beispiellösung für mein Problem geben ^^?
 
Servus,
also in dem Mousepressed musch du die run methode des Threads aufrufen also mit start()
dann führt der die runmethode des threads aus und da ist natürlich auch die endlosschleife drin. Und in mousereleased musch nur die stop() methode des threads aufrufen dann stoppt er das, was in der run() methode passiert
 
Die stop()-Methode vopn Thread wurde inzwischen deprecated.
Im Forum gibt es einige Beiträge dazu, die man nun laufende Threads zum Anhalten bringt.
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben