public class EffectTest extends Application { private final ImageView imageView = new ImageView(); private final ScrollPane scrollPane = new ScrollPane(); final DoubleProperty zoomProperty = new SimpleDoubleProperty(200); @Override public void start(Stage stage) throws Exception { zoomProperty.addListener((Observable arg0) -> { imageView.setFitWidth(zoomProperty.get() * 4); imageView.setFitHeight(zoomProperty.get() * 3); }); scrollPane.addEventFilter(ScrollEvent.ANY, (ScrollEvent event) -> { if (event.getDeltaY() > 0) { zoomProperty.set(zoomProperty.get() * 1.1); } else if (event.getDeltaY() < 0) { zoomProperty.set(zoomProperty.get() / 1.1); } }); Image image1 = new Image(EffectTest.class.getResourceAsStream("/effecttest/img/1156909.png")); imageView.setImage(image1); imageView.preserveRatioProperty().set(true); scrollPane.setContent(imageView); stage.setScene(new Scene(scrollPane, 400, 300)); stage.show(); } } //