mouseMove in mouseMotionListener-Event

Doltsche

Mitglied
Hallo zusammen

Ich suche ein sinnvolle Lösung für folgendes Problem:
Innerhalb eines mouseMotionListener-Events kann es zu der Situation kommen, dass der Mousecursor umpositioniert werden soll. Das umpositionieren lässt sich mühelos über die Robotklasse bewerkstelligen.
Das damit verbundene Problem liegt aber nun auf der Hand: Das programmiertechnische Bewegen des Mousecursors wirft wiederum den mouseMotionListener-Event.
Das führt unweigerlich zu einem unschönen Effekt.

Eine Möglichkeit wäre den Event ab und wieder anzumelden. Allerdings scheint mir diese Lösung gebastelt weswegen ich nun nach einer sinnvolleren Möglichkeit suche.

Freundliche Grüsse

Samuel

Verwendungszweck:

Ich habe ein Grid mit einer Snap-In funktion auf welchem ich ein Rechteck herumschieben kann.
Schnappt das Rechteck nun ein, befindet sich der Mousecursor nicht mehr an der selben Stelle des Rechtecks wie zuvor. Sprich. Das Rechteck hüpft dem Mousecuror sozusagen davon, wenn auch das nur einige Pixel sein mögen.
 

Marco13

Top Contributor
Hm. Abgesehen von der Lösung, die du angedeutet hast (oder einem flag
Code:
if (isMoving) return;
isMoving = true;
moveWithRobot();
isMoving = false;
FALLS (!) das überhaupt funktionieren würde) wüßte ich auch nichts. Aber ... schau dir mal die Doku zur Klasse "Robot" an: Die überhaupt in dieser Form zu verwenden ist schon ein Hack....
 

Doltsche

Mitglied
Hallo

Danke für die Antwort.
Habe das eben ausprobiert, mit negativem Ergebnis.
Derweil ist mir allerdings völlig unklar, wieso das nicht funktioniert.

Wenn das mit der Robotklasse ein Hack ist, was gäbe es da sonst noch für eine Möglichkeit den Mousecursor zu verschieben? Bei Google führen eigentlich alle Suchergebnisse zu dieser Robotklasse...

Irgendeine Lösung für dieses Problem muss es doch geben?
Oder ist das generell ein Designfehler, bei einer Snap-in Funktion den Mousecursor mitzuververschieben?

Freundliche Grüsse

Samuel
 

Marco13

Top Contributor
Ja, ich meinte schon dass der Robot eigentlich nicht für "normale" Programme gedacht ist, sondern eigentlich selbst nur eine Art "debug-werkzeug" ist. Warum es nicht funktioniert, ist schwer zu sagen, aber bei sowas wie
isMoving = true;
moveWithRobot();
isMoving = false;
weiß man nicht, wau welchem Thread die Bewegung des MouseCursors gemacht wird. Robot ist SO low-level-Betriebssystemnah, dass man davon ausgehen muss, dass es möglich ist, dass er z.B. ERST diese DREI Zeilen ausführt, und erst DANN (in "einem anderen Thread") die eigentliche Bewegung durchführt.

So ein echtes, hartes Snappen der Mausposition halte ich für Fragwürdig. Reicht es nicht, wenn das Verschobene Objekt "gesnappt" angezeigt wird?
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
E MouseMotionListener Allgemeine Java-Themen 4
T MouseListener und MouseMotionListener Allgemeine Java-Themen 3
G Key-Event-Sender Allgemeine Java-Themen 5
E Datei verschoben Event Allgemeine Java-Themen 3
D Event Sourcing umsetzen Was? Wie? Allgemeine Java-Themen 33
N Über einen Button in JavaFX ein Event über eine Pipeline schicken(Netty) Allgemeine Java-Themen 1
FrittenFritze Problem mit einer JComboBox, Event temporär deaktivieren Allgemeine Java-Themen 11
G Methoden Aus einem Event, wo ich weiß, dass es ausgeführt werden wird, eine Get-Methode basteln Allgemeine Java-Themen 8
M Best Practice Alternativen für Event-Handling Allgemeine Java-Themen 3
C Zugriff auf Event felder Allgemeine Java-Themen 0
Bananabert Interface Custom 'Event' mit Interface Allgemeine Java-Themen 10
das-mo Warten auf Event Allgemeine Java-Themen 7
K Event benutzen Allgemeine Java-Themen 4
F None-GUI-Event Handling Allgemeine Java-Themen 3
R Klasse über Button Event in anderer Klasse informieren Allgemeine Java-Themen 11
K event dispatch thread fehler. Compiler meckert nicht aber der Interpreter? Warum?? Allgemeine Java-Themen 11
A Relative Mausposition ohne Event Allgemeine Java-Themen 2
V Priorität der Event-Handlings setzen Allgemeine Java-Themen 4
algorismi int-variable Value Change event Allgemeine Java-Themen 3
slawaweis Suche Klassen für Event Managment und Time Allgemeine Java-Themen 2
B Window Closing Event Allgemeine Java-Themen 3
A Event Handler Allgemeine Java-Themen 5
H Event ähnliches System Allgemeine Java-Themen 20
G XML Event --> Befüllen einer Node Allgemeine Java-Themen 2
Q Dateizugriff mitbekommen - file change event Allgemeine Java-Themen 13
W eigene event-Klasse, event posten Allgemeine Java-Themen 2
M Speichern von Word als Event abfangen Allgemeine Java-Themen 7
P Event-Handling mit JSP Allgemeine Java-Themen 7
MQue public void serialEvent(SerialPortEvent event) Allgemeine Java-Themen 4
E Wie: Eigener Listener, eigenes Event (möglichst einfach) Allgemeine Java-Themen 29
MQue Button Event beim drücken und beim auslassen Allgemeine Java-Themen 7
T OutputStream - Event bei Byte-Fluss Allgemeine Java-Themen 5
E Button: Event auslösen Allgemeine Java-Themen 7
B event kunstlich auslösen Allgemeine Java-Themen 8
R Dasselbe Event zweimal aufgefangen? Allgemeine Java-Themen 10
D Thread durch Mouse-Event beenden Allgemeine Java-Themen 5
I Listener/Event selber machen. Allgemeine Java-Themen 4
S methode stoppen / auf ein event warten Allgemeine Java-Themen 5
G Key Event Allgemeine Java-Themen 2
B Thread soll auf Event warten, dann Daten an Klasse senden Allgemeine Java-Themen 2
G konsolenanwendung durch key event beenden Allgemeine Java-Themen 4
M Event Queues in Java? Allgemeine Java-Themen 10
G Problem Canvas Mouse Event Allgemeine Java-Themen 7
J ToolTipText Event abfangen Allgemeine Java-Themen 5
A Endlosschleife + Event Allgemeine Java-Themen 7
G EHM EVENT handling ? Allgemeine Java-Themen 5
C Menü & event Allgemeine Java-Themen 4
C event weiterreichen Allgemeine Java-Themen 3

Ähnliche Java Themen

Neue Themen


Oben