import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.input.ScrollEvent;
import javafx.scene.input.ZoomEvent;
import javafx.scene.layout.Pane;
import javafx.stage.Stage;

public class ScrollEventsApp extends Application {

    public static void main(String[] args) {
        Application.launch(args);
    }

    @Override
    public void start(Stage primaryStage) {
        var root = new Pane();
        root.addEventHandler(ScrollEvent.ANY, (event) -> {
            System.out.print(event.getEventType());
            System.out.print(" " + event.getTouchCount());
            if (event.isInertia()) System.out.print(" INERTIA");
            if (event.isDirect()) System.out.print(" DIRECT");
            if (event.isAltDown()) System.out.print(" ALT");
            if (event.isControlDown()) System.out.print(" CTRL");
            if (event.isMetaDown()) System.out.print(" META");
            if (event.isShiftDown()) System.out.print(" SHIFT");
            if (event.isShortcutDown()) System.out.print(" SHORTCUT");
            System.out.println();
            event.consume();
        });
        var scene = new Scene(root, 600, 400);
        primaryStage.setScene(scene);
        primaryStage.show();
    }

}