getPointerInfo()

anjepieft

Mitglied
Hallo zusammen,

Mein Programm holt sich am Anfang mit die aktuelle Position der Maus.
Dann soll der Thread für eine gewisse Zeit schlafen und sich dann nochmal die aktuelle Position der Maus holen.

Dabei habe ich folgendes Problem:
Wenn zum zweiten mal die Position abgefragt wird, kommt immer die selbe Position wie bei der ersten abfrage raus. Kann mit evtl. jemand sagen was ich falsch gemacht habe?


Code:
package de.trebess.Idle;

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

import de.trebess.Idle.IdleGUI;

public class IdleThread implements Runnable {
	
	private IdleGUI g;
	PointerInfo info = MouseInfo.getPointerInfo(); 
	private static int min = 0;
	private static boolean i = false;
	
	public IdleThread(IdleGUI g)
	{
		this.g = g;
		
	}
	
	@Override public void run()
	{
		min = Integer.parseInt(g.getText1().getText());
					
		
		
		int sleep = (min * 60000);
		
			Point eins = info.getLocation();
			
			
			while(i == false)
			{
				System.out.println(sleep);
				System.out.println(eins);
				try
				{
					
					Thread.sleep(sleep);
					
					Point zwei = info.getLocation();
					if(eins.equals(zwei))
					{
						/*try
				        {
				            Runtime.getRuntime().exec("C:\\Windows\\System32\\Shutdown.exe -s -t 00");
				   
				        }
				        catch (Exception exp)
				        {
				        	
				        }*/
						System.out.println(zwei);
						System.exit(0);
					}
				}
				catch(InterruptedException ex)
				 {
					
				 }
			}
	}

}

Schonmal danke im vorraus
 

zerix

Hausmeister
Moderator
Hallo,

wenn du dir die PointerInfos geben lässt, sind es nur die Infos für diesen Moment, d.h. wenn du die Maus bewegst ändern die sich nicht. Du musst dir dann wieder ein neues Object holen.

MFG

Sascha