【发布时间】:2016-11-22 11:03:59
【问题描述】:
我需要知道 - 鼠标在静止的组件上延迟了多长时间。我的意思是它在一个节点上完全静止了多长时间。我没有找到标准方法。谢谢。
【问题讨论】:
-
你的意思是鼠标在一个节点上停留了多长时间?或者它在一个节点上完全静止了多长时间?您在什么时候需要这些信息?点击鼠标时?
-
我的意思是它在一个节点上完全静止了多长时间。
我需要知道 - 鼠标在静止的组件上延迟了多长时间。我的意思是它在一个节点上完全静止了多长时间。我没有找到标准方法。谢谢。
【问题讨论】:
只需使用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();
}
除此之外,您可能还想监听包含节点被关闭/图标化的阶段...
【讨论】: