Robot.mouseMove功能

时间:2018-12-10 15:39:06

标签: java awtrobot

我正在尝试创建一个类似Synergy的应用程序,其中服务器连续记录鼠标的位置并将其X和Y坐标发送到客户端,客户端使用Robot.mouseMove函数移动鼠标将光标移到指定位置。

但是执行该功能后,它将鼠标移至屏幕的一个极端,因此结果是鼠标在正确的位置和屏幕的一个极端(通常为左上角)之间连续跳来跳去。

关于什么可能导致此问题的任何想法? 客户端设备是具有4K屏幕的Dell 7559。难道是个问题吗?

public class client {

    public static void main(String args[]) throws IOException, IOException, InterruptedException, AWTException
    {
        Robot robot = new Robot();

        Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
        // the screen height
        System.out.println(screenSize.getHeight());
        System.out.println(screenSize.getWidth());
        String sentence;
        String modifiedSentence;
        BufferedReader inFromUser = new BufferedReader(new InputStreamReader(System.in));
        Socket clientSocket = new Socket("localhost", 6789);
        DataOutputStream outToServer = new DataOutputStream(clientSocket.getOutputStream());
        BufferedReader inFromServer = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
        while (true)
        {
            sentence = inFromServer.readLine();
            String[] position = sentence.split(" ");
            robot.mouseMove(Integer.parseInt(position[0]), Integer.parseInt(position[1]) + 100);
            System.out.println(sentence);
        }
    }
}

0 个答案:

没有答案