0

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

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 新手,可能是几个愚蠢的错误;

4

1 回答 1

1

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

于 2013-07-02T01:52:18.337 回答