Java MouseEvent处理器。停滞不前

Java MouseEvent处理器。停滞不前,java,javafx,Java,Javafx,我需要知道-鼠标在静止的组件上延迟了多少时间。我的意思是它在一个节点上完全静止了多长时间。我没有找到标准方法。谢谢。只需使用onMouseMoved处理程序即可完成此操作;您只需节省时间并计算差异: @Override public void start(Stage primaryStage) { StackPane root = new StackPane(); root.setOnMouseMoved(new EventHandler<MouseEvent>()

我需要知道-鼠标在静止的组件上延迟了多少时间。我的意思是它在一个节点上完全静止了多长时间。我没有找到标准方法。谢谢。

只需使用
onMouseMoved
处理程序即可完成此操作;您只需节省时间并计算差异:

@Override
public void start(Stage primaryStage) {
    StackPane root = new StackPane();

    root.setOnMouseMoved(new EventHandler<MouseEvent>() {

        long lastTriggered = System.currentTimeMillis();

        @Override
        public void handle(MouseEvent event) {
            long t = System.currentTimeMillis();
            System.out.println("last moved " + (t - lastTriggered) + "ms ago");
            lastTriggered = t;
        }
    });

    Scene scene = new Scene(root, 400, 400);

    primaryStage.setScene(scene);
    primaryStage.show();
}
@覆盖
公共无效开始(阶段primaryStage){
StackPane root=新的StackPane();
setOnMouseMoved(新的EventHandler(){
long lastTriggered=System.currentTimeMillis();
@凌驾
公共无效句柄(MouseeEvent事件){
long t=System.currentTimeMillis();
System.out.println(“上次移动”+(t-lastTriggered)+“毫秒前”);
最后触发=t;
}
});
场景=新场景(根,400400);
初级阶段。场景(场景);
primaryStage.show();
}

除此之外,您可能还需要侦听包含节点已关闭/图标化的阶段…

您的意思是鼠标在节点上停留了多长时间?或者它在一个节点上完全静止了多长时间?您在什么时候需要这些信息?当鼠标被点击时?我的意思是它在一个节点上完全静止了多长时间。