2017-05-18 56 views
0

我有3個問題我希望你能幫助我!.setOnMouseMoved()在鼠標按下並拖動時被忽略

1)[解決]我有一個包含一些ImageView的.setOnMouseMoved()綁定到可以擴展基於光標位置其尺寸的父節點的場景;

的問題是,如果我按鼠標鍵不放,然後我走動的場景光標時,.setOnMouseMoved()事件被忽略,我ImageView的■不要弄縮放:

即使在這種情況下,是否有辦法保持.setOnMouseMoved()正常工作?

2)我ImageViews也有.setOnMouseClicked()事件,但如果我按他們的鼠標並按住不放,將光標移出現場,對ImageView的的頂部再次去併發布它,事件執行相同;

如果鼠標離開場景,我不會執行該事件,我該怎麼辦?

3)如果我按下並按住舞臺酒吧(包含應用程序名稱欄,最小化按鈕和退出按鈕),而移動光標,在我的場景凍結所有的動畫爲1秒左右,那麼一切都會恢復正常:爲什麼?

謝謝!

+1

「如果我按下鼠標按鈕並保持按下,然後我移動光標」這是一個鼠標拖動。使用'setOnMouseDragged'。處理鼠標拖動事件有三種不同的模式:閱讀['MouseEvent'](http://docs.oracle.com/javase/8/javafx/api/javafx/scene/input/MouseEvent.html),[ MouseDragEvent'](http://docs.oracle.com/javase/8/javafx/api/javafx/scene/input/MouseDragEvent.html)和['DragEvent'](http://docs.oracle.com/javase /8/javafx/api/javafx/scene/input/DragEvent.html)文檔。 –

+0

@James_D謝謝,我解決了** 1)**! – Dea5

回答

1

1)嘗試使用.setOnMouseDragged來代替。

2).setOnMouseClicked寄存器,只要點擊鼠標。這意味着即使您拖出窗口,它仍會註冊。如果您不想在窗口外拖動時註冊它,請使用.setOnMouseReleased。

3)您是否使用動畫的java.util.Timer?如果是這樣,請查看this

+0

不,我不是:順便說一句,它也發生在使用時間軸... – Dea5

相關問題