Java Robot鼠标移动:设置速度?

时间:2011-03-17 12:59:19

标签: java performance mouse velocity awtrobot

Java Robot类允许移动鼠标,就像移动实际的物理鼠标一样。

但是,如何以人性化(因而不是即时)的方式将鼠标从Point1移动到Point2?阿卡,如何设定运动速度?

如果Robot类没有这样的速度,那么如果只能实时移动鼠标,那么应该使用什么样的“算法”来模仿人类的鼠标移动?它应该以一定的递增速度逐像素地移动鼠标吗?

3 个答案:

答案 0 :(得分:4)

这是一个非常好的方法:

考虑鼠标开始的start_x和希望它结束​​的end_xy

也是如此
for (int i=0; i<100; i++){  
    int mov_x = ((end_x * i)/100) + (start_x*(100-i)/100);
    int mov_y = ((end_y * i)/100) + (start_y*(100-i)/100);
    robot.mouseMove(mov_x,mov_y);
    robot.delay(10);
}

希望有帮助...

答案 1 :(得分:0)

Robot类有一个延迟(...)方法,可用于控制点到点的移动。尝试一些不同的算法来确定你喜欢什么。

答案 2 :(得分:0)

重写 Geoff 的回答以便于理解:

for (int i=0; i<=100; i++){
   int mov_x = start_x + (end_x - start_x) * i/100;
   int mov_y = start_y + (end_y - start_y) * i/100;
   robot.mouseMove(mov_x,mov_y);
   robot.delay(10);
}