使用类机器人在一个数组中将鼠标的动作从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新手,可能是几个愚蠢的错误;
答案 0 :(得分:1)
问题可能是你的conx
永远不会真正等于你的x2
,因为你所做的所有数学都是双打的。这意味着conx
会从略小于x2
变为稍微大于x2
,并且会在两者之间来回反弹或继续沿其当前轨迹移动。您需要添加一些逻辑以确保不会跨越目标,您可以通过设置足够接近的阈值或者一旦超过它就停止来执行。