如何使用机器人类动画从a点到b点的鼠标运动?

时间:2013-07-02 01:29:02

标签: java

使用类机器人在一个数组中将鼠标的动作从1个按钮动画到另一个按钮。 这是我使用的两种方法:

public void optimusprime(int row, int column, JButton current) throws InterruptedException {
        Point p;
        Point p2;
        double x;
        double y;
        double x2;
        double y2;
        double conx = 0;
        double m;
        double b;
        double cony;
        p = current.getLocationOnScreen();

        x = (int)( p.getX() + 30.5);
        y = (int)( p.getY() + 30.5);

        optimus((int) x, (int) y);




        p2 = mesa[row][column].getLocationOnScreen();
        x2 = (int) (p2.getX() + 30.5);
        y2 = (int) (p2.getY() + 30.5);

        m = (y2 - y) / (x2 - x);
        b = y - (m * x);
        while (conx != x2) {

            conx = x;
            cony = (m * conx) + b;
            optimus((int) conx, (int) cony);
            conx++;
            Thread.sleep(500);
        }

    }

    public void optimus(int x, int y) {
        try {


            Robot robot = new Robot();
            robot.mouseMove(x, y);
        } catch (AWTException e) {
        }
    }

任何1人可以在这里帮助我或者至少给出一个推荐吗?在一个无限循环(不得不关闭电脑)的股票,它根本没有工作;我是java新手,可能是几个愚蠢的错误;

1 个答案:

答案 0 :(得分:1)

问题可能是你的conx永远不会真正等于你的x2,因为你所做的所有数学都是双打的。这意味着conx会从略小于x2变为稍微大于x2,并且会在两者之间来回反弹或继续沿其当前轨迹移动。您需要添加一些逻辑以确保不会跨越目标,您可以通过设置足够接近的阈值或者一旦超过它就停止来执行。