我正在尝试创建一个类似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);
}
}
}