Java ImageView坐标到屏幕坐标

时间:2015-12-22 14:11:12

标签: java javafx imageview screen coordinates

我正在尝试支持远程桌面软件,我需要使用机器人做鼠标点击和类似的东西,我的问题是,我想要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最新版本。

2 个答案:

答案 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转换方法之一?