2016-11-22 81 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關閉節點/臺...