robot.mouse无法通过视频证据移动到正确的位置

时间:2018-07-02 03:03:25

标签: java class mouse mousemove awtrobot

这是我在编程中遇到的最奇怪的问题之一。当我使用机械手类移动光标时,在第一次尝试时它不会将其移动到正确的位置。它似乎“锁定”并每次都更接近指定位置。我在下面上传的youtube视频上附加了一个链接,以显示此内容。该程序在下面列出,非常简单。它将光标移动到同一位置25次,并在每次使用MouseInfo.getPointerLocation尝试后打印出光标位置。当我单击“运行”按钮时,它将尝试将鼠标移至指定值,每次都将其关闭和靠近,通常需要大约3次。我试过更新我正在使用的Eclipse和Java的版本。我的研究表明人们有这个问题,并引用了OpenJDK的错误。我不确定这是否会导致问题,或者是否已解决或如何更新。谢谢。这是视频的链接:

https://youtu.be/VfYTPcbW6iY 该视频的重要说明:因为我是用bandicam录制的,所以它隐藏了鼠标,因此程序每次都在新位置单击。红色圆圈表示单击的位置。该程序在下面列出。这个错误每次都会发生,并且自从大约一年前我在计算机上更新Java以来​​,我就一直遇到这种错误。我先在视频中以(1037,456)坐标对其进行了两次显示,然后第二次将其更改为(500,500)。

import java.awt.AWTException;
import java.awt.MouseInfo;
import java.awt.Robot; 
import java.awt.event.InputEvent;

public class tester {
    static Robot g;
    public static void main(String args[]) throws AWTException{
        g = new Robot();
        for(int i = 0; i < 25; i++) {
            g.mouseMove(500,500);
            g.mousePress(InputEvent.BUTTON1_MASK);
            g.mouseRelease(InputEvent.BUTTON1_MASK);
            System.out.println("x: " + MouseInfo.getPointerInfo().getLocation().x + " y: " + MouseInfo.getPointerInfo().getLocation().y);
            g.delay(500);
        }
    }
}

0 个答案:

没有答案