2016-11-22 82 views
-2

我需要知道 - 鼠标在静止状态下延迟了多长时间。我的意思是它在一个节点上停留了多久。我没有找到标准方法。谢谢。MouseEvent处理程序。延迟静止

+0

你的意思是多久鼠标留在一个节点?或者它在一个节点上停留了多久? 您在什么时候需要这些信息?当点击鼠标? – Itai

+0

我的意思是它在一个节点上停留了多久。 – olexiy86

回答

1

只需使用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(); 
} 

你可能想监听包含除了图标化beinc关闭节点/台...