Я решил ту же проблему, используя вышеупомянутую возможность получить позицию мыши по запросу. Затем я запустил новый поток, чтобы делать это постоянно во время выполнения остальных программ.
MouseInfo.getPointerInfo (). GetLocation ()
Также мне пришлось сделать основной класс расширенным Thread, таким образом
public class MouseMotion extends Thread {
Это требует, чтобы вы создали функцию run.
В вашей функции void просто создайте бесконечный цикл
public void run() {
int n=10;
for (int i=0;i<n; n++) //horrible infinite loop
{
Thread.sleep(100); //this will slow the capture rate to 0.1 seconds
PointerInfo a = MouseInfo.getPointerInfo();
Point p = new Point (0,0);
a = MouseInfo.getPointerInfo();
p = a.getLocation();
int x = (int)p.getX(); //getX and getY return doubles so typecast
int y = (int)p.getY();
System.out.println(""+x+" "+y); //to see it grabing locations not needed
}
}
Теперь осталось только вызвать нить, когда вы начнете наблюдать за движением мыши. Я запускаю тему сразу после основного как такового
public static main (String[] args) throws Exception {
Thread thread = new MouseMotion();
thread.start();
...}