2013-01-05 107 views

回答

4

可以使用機器人用於這一目的:

AWT機器人:

http://docs.oracle.com/javase/1.5.0/docs/api/java/awt/Robot.html

或玻璃機器人:

com.sun.glass.ui.Robot; 它可以創建: com.sun.glass.ui.Application.GetApplication()。createRobot();

要得到光標所在位置,看其他職位約java.awt.MouseInfo

+0

非常感謝,雙方都很好。 –

+0

可能的話,在MacOS上可能會有其中一個問題。所以,你必須交換它們,所以要小心。我的意思是,如果你需要你的解決方案是可移植的,那麼檢查一下,該機器人在所有配置中運行良好。 –

+0

感謝您的信息!幸運的是,我在我的工作場所有一個mac。我會檢查一下。 –

6
import java.awt.MouseInfo; 
// get the mouse's position 
Point p = MouseInfo.getPointerInfo().getLocation(); 

import java.awt.Robot; 
// set the mouse position 
new Robot().mouseMove(x, y); 

PS這個問題。請勿使用com.sun。*類(除非您使用Mac,請參閱下文)。

PS2。由於JavaFX問題似乎將在JavaFX8中得到解決,因此您無法在Mac中使用java.awt類,因此在亞馬遜基洛夫指出的Mac中,您仍然需要使用com.sun類,如下所示:

// workaround for Mac only 
com.sun.glass.ui.Robot robot = 
     com.sun.glass.ui.Application.GetApplication().createRobot(); 

// getPosition of the mouse in Mac 
int x = robot.getMouseX(); 
int y = robot.getMouseY(); 
+0

當您在MacOS上的JFX應用程序中啓動它時,AWT機器人可能會造成麻煩,並且在這種情況下,一種可能的選擇是使用玻璃機器人。請參閱http://stackoverflow.com/questions/15320915/javafx-screencapture-headless-exception-on-osx。在這種情況下,玻璃機器人是私人的,但它不可能是危險的。 –

+0

感謝您告訴我有關Mac問題的信息......但我仍然認爲,當他們只是想輕鬆獲得鼠標在屏幕上的位置時,我們應該將用戶指向「標準」方向,而不是爲Mac提供此com.sun攻擊作爲標準。 – Renato

+0

是的,人們應該理解並接受,這不是一種正式的方式。只是有問題的情況下的選擇。 –