Mauszeiger programatisch bewegen

takidoso

Erfahrenes Mitglied
Hallo und Halli,
eigentlich befürchte ich ja, dass es gar nicht geht, aber falls zufällig jemand weiß dass es doch geht , wäre ich super glücklich :)
Kan man mittels Java den Mousezeiger verschieben? Würde mir schon ausreichen wenn es nur auf einem Java-Fenster ginge.

mit furchtbar neugierigen Grüßen

Takidoso
 
Ahhh ja, danke, hatte diese Klasse auch gerade gegoogelt.
aber leider stellt sich mir jetzt die Frage, wie ich an die Koordinaten komme (damit meine ich die auf Bildschirmebene und nicht die relativen der Fenster)
Denn ich würde zu gerne folgendes tun:
Mit dem Mouserad hat der Anwender die Möglichkeit den Inhalt des Applikationsfensters zu vergrößern (zu zoomen).
Dabei soll die position des mousezeigers berücksichtigt werden, so dass der Mousezeiger beim Zoom auch gleichzeitig das Zentrum ist, also wenn der Zeiger nicht zufällig auf der "Bildmitte" ist der Ausschnitt somit "korrigiert" wird. Damit es keine permanente Ausschnittbewegung gibt soll der Mauszeiger dann gleich auf die Mitte des Bildes bewegt werden.
Problem nun ist dass ich vom Fenster die relativen Koordinaten bekommen kann aber dem Roboter die tatsächlichen Bildschirm offenbar nur geben kann.
Also benötige ich irgendwie die Möglichkeit die Bildschirmkoordinaten des Zeigers einlesen zu können, damit ich den Zeiger korrekt bewegen kann.
Gibt es da irgendwo eine Routine für? In der Robot-Klasst habe ich sowas leider ncht gesehen :-(.
 
Naja, wenn du die Position des Mauszeigers nur Relativ zum Fenster 0,0 hast, dann mach doch einfach sowas a la:
Code:
int x = shell.getLocation().x + MyMouse.getLocation().x;
int y = shell.getLocation().y + MyMouse.getLocation().y;

Wobei das mal nur so Pseudocode ist ;)

Ergebnis des ganzen ist, dass dein Fenster ein x von 120 hat und der Mauszeiger ein relatives x von 20 zum Fenster hat.
Das ergibt dann ein x von 140.


Andersherum, um den genauen Mittelpunkt deines Fensters zu ermitteln, musst du die Formel halt umstellen:
Code:
int x = shell.getLocation().x + (shell.getSize().width / 2);

Das wäre dann das absolute "Monitor-X" für die Maus, um genau in der Mitte des Fensters zu sein.
 
Zuletzt bearbeitet:
Nun habe ich endlich nach einigem googeln weitere Einträge in Foren gesehen und stieß auf die Klasse SwingUtilities die eine Routine convertPointToScreen(Point p, Component c) beherbergt. Ich denke es ist genau das wonach ich suchte.

vielen Dank für die Antworten

Takidoso
 

Neue Beiträge

Zurück