MouseEvent处理程序。在静止中延迟

时间:2016-11-22 11:04:00

标签: java javafx

我需要知道 - 鼠标在静止状态下延迟超过组件的时间。我的意思是它在节点上保持完全静止多长时间。我没有找到标准方法。谢谢。

1 个答案:

答案 0 :(得分: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关闭/图标化的舞台以及... ...