import javafx.application.Application;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.paint.Color;
import javafx.scene.shape.Rectangle;
import javafx.stage.Stage;

public class JFXZoomRotate extends Application {

    public static void main(String[] args) {
        Application.launch(args);
    }

    @Override
    public void start(Stage primaryStage) {

        Rectangle rect = new Rectangle();
        rect.setX(350);
        rect.setY(150);
        rect.setWidth(100);
        rect.setHeight(100);
        rect.setFill(Color.GREEN);

        rect.setOnZoom(e -> {
            rect.setScaleX(rect.getScaleX() * e.getZoomFactor());
            rect.setScaleY(rect.getScaleY() * e.getZoomFactor());
            e.consume();
        });

        rect.setOnRotate(e -> {
            rect.setRotate(rect.getRotate() + e.getAngle());
            e.consume();
        });

        Group root = new Group(rect);
        Scene scene = new Scene(root, 800, 400);
        primaryStage.setScene(scene);
        primaryStage.show();
    }
}
