如何通过Java机器人进行平滑滚动?

时间:2016-11-18 21:08:56

标签: java mousewheel smooth-scrolling awtrobot

我已经习惯了我的触摸板,它允许平滑且非常精确地滚动,但是我无法通过Java机器人模拟它 - 鼠标滚轮只获得整数参数和步骤携带的滚动。我可以在Java中模拟平滑滚动吗?

robot.mouseWheel(a); // int a

1 个答案:

答案 0 :(得分:0)

卷轴的单位始终是"轮的凹槽" (在您询问之前:docs中如何命名测量值。这就是硬件实现的方式(更具体地说:鼠标)。每个"凹口"滚动多少像素?只是操作系统配置。你不能用纯粹的java搞乱它,即使有可能我也不推荐它。

然而,你可以做的是减慢机器人滚动的速度:

import java.awt.Robot;

public class Test{
    public static void main(String[] args)
        throws Exception
    {
        //time to switch to a specific window where the robot ought to be tested
        try{ Thread.sleep(2000); }catch(InterruptedException e){}

        Robot r = new Robot();
        for(int i = 0; i < 20; i++){
            //scroll and wait a bit to give the impression of smooth scrolling
            r.mouseWheel(1);
            try{ Thread.sleep(50); }catch(InterruptedException e){}
        }
    }
}