如何在 JavaFX 2.2 中获取静止鼠标光标的场景坐标?
How to get scene coordinates of a stationary mouse cursor in JavaFX 2.2?
在处理任何 MouseEvent
时,很容易通过调用 event.getSceneX()
等方法(或 event.getScreenX()
,如果这是我们想要的)来获取鼠标坐标。但是,如果当前没有鼠标事件,我不知道如何在鼠标事件处理程序之外获取此信息?
在我的例子中:按下某个热键后,我希望相对于当前鼠标位置发生一些事情。但是我无法获取位置信息。我应该怎么做?
好的,我至少找到了一个解决方案,利用 java.awt.MouseInfo
,这里是概念的概要:
if (view.isHover()) {
Point pointerLocation = MouseInfo.getPointerInfo().getLocation();
int sceneX = pointerLocation.x;
sceneX -= view.getScene().getWindow().getX();
sceneX -= view.getScene().getX();
int sceneY = pointerLocation.y;
sceneY -= view.getScene().getWindow().getY();
sceneY -= view.getScene().getY();
return new Point(sceneX, sceneY);
} else {
// mouse not in view
}
在处理任何 MouseEvent
时,很容易通过调用 event.getSceneX()
等方法(或 event.getScreenX()
,如果这是我们想要的)来获取鼠标坐标。但是,如果当前没有鼠标事件,我不知道如何在鼠标事件处理程序之外获取此信息?
在我的例子中:按下某个热键后,我希望相对于当前鼠标位置发生一些事情。但是我无法获取位置信息。我应该怎么做?
好的,我至少找到了一个解决方案,利用 java.awt.MouseInfo
,这里是概念的概要:
if (view.isHover()) {
Point pointerLocation = MouseInfo.getPointerInfo().getLocation();
int sceneX = pointerLocation.x;
sceneX -= view.getScene().getWindow().getX();
sceneX -= view.getScene().getX();
int sceneY = pointerLocation.y;
sceneY -= view.getScene().getWindow().getY();
sceneY -= view.getScene().getY();
return new Point(sceneX, sceneY);
} else {
// mouse not in view
}