2016-03-03 44 views
3

我想我的鼠标相对的位置到帧当我点击快捷方式时,获取鼠标位置:按下某个字符

@Override 
public void handle(KeyEvent keyEvent) { 
    if (keyEvent.isShortcutDown()) { 
     if (keyEvent.getCode() == KeyCode.P) { 
      //Code Here 
     } 
    } 
} 
+2

看看[这里](http://stackoverflow.com/questions/16635514/how-to-get-location-of-mouse-in-javafx)。 基本上 - 你可以有一个MouseMoved监听器(在你的根节点上)跟踪某些成员字段中的当前位置。不知道这是否是最佳方式,所以你可能想等待专家意见:) – Itai

+0

@sillyfly在我看来,这也是最好的选择。通过鼠标监听器跟踪鼠标 – Steven

+0

@Steven:他可能是指,这种方式总是会跟踪鼠标的位置,如果仅在按下按键时才跟踪鼠标的位置会更好。 –

回答

0

KeyEvent火灾,只得到使用MouseInfo指针位置。

@Override 
public void handle(KeyEvent keyEvent) { 
if (keyEvent.isShortcutDown()) { 
    if (keyEvent.getCode() == KeyCode.P) { 
     //Code Here 
     Point mouseLoc = MouseInfo.getPointerInfo().getLocation(); 
    } 
} 

如果要持续跟踪鼠标位置,应该使用MouseMoved侦听器。

+0

'MouseInfo'是一个awt类,而不是Javafx。很确定它不会工作,或会导致问题。 – Itai

+0

虽然'MouseInfo'是一个awt类,但这种方法的工作方式与预期完全相同:控制器像处理其他任何方法一样处理它。 –

+0

显然它可能会导致osx上的问题 - https://bugs.eclipse.org/bugs/show_bug.cgi?id=449942。如果它有效,那么我认为这很好,但有些人可能会认为这是不明智的(请参阅我在原始问题中链接的答案中的jewelsea笔记) – Itai