处理任何MouseEvent
时,通过调用event.getSceneX()
(或event.getScreenX()
等方法(如果这是我们想要的),很容易获得鼠标坐标。 Hovewer,如果当前没有鼠标事件,我不知道如何在鼠标事件处理程序之外获取此信息?
在我的情况下:按下某个热键后,我想要相对于当前鼠标位置发生一些事情。但我无法获得位置信息。我该怎么办?
答案 0 :(得分:-1)
好的,我找到了至少一个解决方案,利用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
}