2016-03-03 40 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