我正在尝试支持远程桌面软件,我需要使用机器人做鼠标点击和类似的东西,我的问题是,我想要Robot.mousemove需要屏幕坐标X和Y,我不知道如何当我的鼠标在imageview上移动时,从imageview获取,所以我尝试了这个:
double screenx = 0;
double screeny = 0;
RemoteDekstopFormDesktopImageView.localToScreen(screenx, screeny);
但是它还给我0.0但是它也应该看到屏幕尺寸实际上也是对的吗? soo让我们说屏幕尺寸是1280x1024 soo我们需要从图像视图中获取也可以从屏幕分辨率计算的坐标!很难解释,但你得到了我想要实现的目标吗?如果你不知道什么只是查看远程桌面是什么例如:teamviewer软件。谢谢!我只需要获得x和y坐标!
我也差点忘了我正在使用JavaFX最新版本。
答案 0 :(得分:0)
好消息!我能够将我找到的代码转换为javafx并且它有效!这是它的工作原理:对于想要从imageview获取真实坐标的人
您需要获取显示器尺寸和图像视图尺寸,然后像这样设置x:
imgmousex = Toolkit.getDefaultToolkit().getScreenSize().getWidth()/RemoteDekstopFormDesktopImageView.getFitWidth();
宽度为X,然后与高度为Y的相同:
imgmousey = Toolkit.getDefaultToolkit().getScreenSize().getHeight()/RemoteDekstopFormDesktopImageView.getFitHeight();
然后最后一步是你需要将它转换为坐标,我们将这样做:
event.getX() * imgmousex
event.getY() * imgmouseY
这将为您提供坐标,即使是mouseevent和imgmousex或imgmousey也可以说我们设置的假坐标。我不能很好地解释,但我希望你理解这一点,当你理解它时它很容易。感谢所有试图帮助我但没有发布任何内容的人!我希望这能帮助很多需要真正坐标的人!
答案 1 :(得分:0)
为什么你不只是使用内置于每个节点中的localToScreen或screenToLocal转换方法之一?