簡體   English   中英

Java ImageView 坐標到屏幕坐標

[英]Java ImageView coordinates to screen coordinates

我正在嘗試支持遠程桌面軟件,我需要使用 Robot 來執行鼠標點擊之類的操作,我的問題是我想要需要屏幕坐標 X 和 Y 的 Robot.mousemove,但我不知道如何從當我的鼠標在 imageview 上移動時,imageview soo 我試過這個:

    double screenx = 0;
    double screeny = 0;
    RemoteDekstopFormDesktopImageView.localToScreen(screenx, screeny);

但它返回給我 0.0 但它也應該看到屏幕尺寸實際上也是正確的? soo 假設屏幕尺寸為 1280x1024,所以我們需要從圖像視圖中獲取坐標,該坐標也將根據屏幕分辨率計算! 好吧,這很難解釋,但你明白我想要達到的目標嗎? 如果您不知道什么,請查看遠程桌面是什么,例如:teamviewer 軟件。 謝謝! 我只需要得到 x 和 y 坐標!

另外我幾乎忘記了我使用的是 JavaFX 最新版本。

好消息! 我能夠將我找到的代碼轉換為 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 可以說是我們設置的假坐標。 我不能很好地解釋,但我希望你理解這一點,當你理解它時它很容易。 感謝所有試圖幫助我但沒有發布任何內容的人! 我希望這會幫助很多需要真實坐標的人!

為什么您不只使用內置於每個節點中的 localToScreen 或 screenToLocal 轉換方法之一?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM