我想跟踪鼠标光标的位置,因此需要使用一个线程来继续跟踪它。我的线程只运行一次。我猜测我错过了一些东西。为什么线程只运行一次?
代码:
mousePosition类
import java.awt.MouseInfo;
import java.awt.Point;
import java.util.Timer;
public class mousePosition implements Runnable
{
static Point mouseLocation = MouseInfo.getPointerInfo().getLocation();
static Timer t = new Timer();
int x,y = 0;
public void run()
{
try
{
x = mouseLocation.x;
y = mouseLocation.y;
System.out.println("X:"+x+" Y:"+y+" at time "+System.currentTimeMillis());
}
catch(Exception e)
{
System.out.println("Exception caught : "+e);
}
}
}
主类
public class threadRunner
{
public static void main(String[] args)
{
Thread t1 = new Thread(new mousePosition());
t1.start();
}
}
感谢您的任何帮助。我知道这个问题以前曾被问过,但我仍然在努力使其工作。
由于没有循环,并且您不使用计时器,所以'run'方法只运行一次是有道理的。 – assylias 2012-07-20 11:42:00
你为什么不在你的线程中使用你的计时器?线程的'run()'方法将在执行代码并结束您的线程后始终返回! – 2012-07-20 11:45:14
你通常在run方法中有一些while语句,以保持线程正常运行,而且经常是真的 – 2012-07-20 11:46:40