java - 如何用机器人类制作鼠标从a点到b点的运动动画?

标签 java

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

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) {
        }
    }

任何人都可以在这里帮助我或者至少给出建议吗?库存陷入无限循环(必须关闭电脑)并且根本不起作用;我是 Java 新手,这可能是几个愚蠢的错误;

最佳答案

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

关于java - 如何用机器人类制作鼠标从a点到b点的运动动画?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17416072/

相关文章:

c# - 面向 C# 程序员的高级 Java 主题

java - 为什么我在 java 中遇到 OutOfMemoryError 错误?

java - 从 Android 服务关闭屏幕

java - 查询用户时 JPA 潜在的性能问题

java - 复制构造函数 v. 实现 Cloneable 接口(interface)

java - Hibernate:可嵌入列表的唯一约束(@ElementCollection)

java - Sharepoint Online REST API 连接

java - Android-Expected a List while deserializing, but got a class java.util.HashMap

java - 如何以 UTF-8 打开文件并以 UTF-16 写入另一个文件

java - 神经网络为每个输入返回相同的输出