Mouse Position (int x,y)

  • Themenstarter Themenstarter Java_Neuling
  • Beginndatum Beginndatum
J

Java_Neuling

Morgen,

ich hätte eine Frage und zwar kann man irgendwie die Position der Maus auf Desktop abfragen?

MfG
Java_Neuling
 
Hallo,

schau mal hier
Java:
package de.tutorials;

import java.awt.MouseInfo;
import java.awt.Point;
import java.awt.PointerInfo;

public class MousePositionExample {

    public static void main(String[] args) {
	PointerInfo info = MouseInfo.getPointerInfo();
	
	Point location = info.getLocation();
	
	
	System.out.println("x="+location.x+ " y="+location.y);
    }
}


MFG

zEriX
 
Eins ist mir noch unklar... :confused:
und zwar würde ich den Mauszeiger gern auf den Start-Button in der Taskleiste setzen aber irgendwie will der Mauszeiger nicht drauf...
Muss ich da evtl was berücksichtigen?

MfG
Java_Neuling
 
Viele Leute blenden die Taskleiste ja auch aus... kann also auch deshalb schon problematisch werden.
 
Mit der Klasse Robot kannst Du ganz einfach die Position des Mauscursors setzen. Was den Start-Button betrifft, musst Du aber bedenken, dass dessen Position (in Pixel) u.a. von der Bildschirmauflösung abhängt bzw. kann die Taskleiste auch an einer anderen Bildschirmseite positioniert oder wie erwähnt überhaupt nicht sichtbar sein.
 
Ja zurzeit versuch ich es aber nur auf meinem bildschirm da klappts bei mir aber auch nicht wirklich ich hab mit dem post von Zerix extra die Position abgefragt (also erst die Maus manuell auf die Schaltfläche-Start positioniert und die Position dann ausgeben lassen) aber es klappt nicht :(
 
Verwendest Du die Robot-Klasse? Damit funktionierts ganz einfach.

Poste mal den entsprechenden Code-Teil, da kann leicht geholfen werden.
 
Code:
public class Maus 
{
	static Robot rob;
	
	public static void main(String [] args)
	{
		try {
			rob = new Robot();
		} catch (AWTException e) {
			e.printStackTrace();
		}
		
		PointerInfo info = MouseInfo.getPointerInfo();
	                Point location = info.getLocation();            
	                System.out.println("x="+location.x+ " y="+location.y);
	    
		
		int x = location.x;
		int y = location.y;
		
		do
		{
			if(x > 10)
			{
				x--;
			}
			else if( x < 10)
			{
				x++;
			}
			
			if(y > 1009)
			{
				y--;
			}
			else if(y < 1009)
			{
				y++;
			}
			
			try {
				Thread.sleep(10);
			} catch (InterruptedException e) {
				e.printStackTrace();
			}
			rob.mouseMove(x, y);
		}
		while(x != 10 && y != 1009);
	}
}
 
Du siehst doch, dass das Setzen der Position funktioniert. Der Fehler liegt in Deiner while-Schleife: Du musst Deine Berechnungen wiederholen, solange eine der beiden Koordinaten ungleich dem Endwert ist - und somit && durch || ersetzen.
 
Zurück