按下并拖动鼠标时忽略.setOnMouseMoved()

时间:2017-05-18 12:32:52

标签: java events javafx

我希望你有3个问题可以帮助我!

1)[求助] 我有一个场景,其中包含一些 ImageView .setOnMouseMoved()绑定到父节点,可以扩展它们的尺寸基于光标位置;

问题是,如果我按下鼠标按钮并按住它,然后我在场景周围移动光标, .setOnMouseMoved()事件将被忽略,我的 ImageView s不会缩放:

即使在这种情况下,还有办法让 .setOnMouseMoved()保持正常工作吗?

2)我的ImageViews也有一个 .setOnMouseClicked()事件,但是如果我按下它们并按住它,将光标移出场景,再次在 ImageView 之上并重新发布它,事件执行相同;

如果鼠标离开场景,我不会执行该事件,我该怎么办?

3)如果我按下并按住舞台栏(包含应用程序名称的栏,最小化按钮和退出按钮)而不移动光标,所有我的场景中的动画冻结了大约1秒钟,然后一切都恢复正常:为什么?

谢谢!

1 个答案:

答案 0 :(得分:1)

1)尝试改为使用.setOnMouseDragged。

2).setOnMouseClicked在单击鼠标后立即注册。这意味着即使您拖出窗口,它仍会注册。如果您不想在窗外拖动时注册,请使用.setOnMouseReleased。

3)您是否使用java.util.Timer进行动画制作?如果是,请查看this