import javafx.application.Application; import javafx.beans.property.DoubleProperty; import javafx.beans.property.SimpleDoubleProperty; import javafx.event.EventHandler; import javafx.scene.Group; import javafx.scene.Scene; import javafx.scene.input.ScrollEvent; import javafx.scene.input.ZoomEvent; import javafx.scene.paint.Color; import javafx.scene.text.Font; import javafx.scene.text.Text; import javafx.stage.Stage; public class JavaFX extends Application { final DoubleProperty zoomProperty = new SimpleDoubleProperty(200); public void start(Stage stage) throws Exception { Group root = new Group(); Scene scene = new Scene(root, Color.ALICEBLUE); final Text text = new Text(); text.setX(60); text.setY(150); text.setFont(new Font(25)); text.setText("Mon Composant"); root.getChildren().add(text); scene.setOnZoom(new EventHandler(){ public void handle(ZoomEvent event) { text.setFont(new Font(text.getFont().getSize()*event.getZoomFactor())); } }); text.addEventHandler(ScrollEvent.ANY, new EventHandler() { public void handle(ScrollEvent event) { text.setTranslateX(text.getTranslateX() + ((ScrollEvent) event).getDeltaX()); text.setTranslateY(text.getTranslateY() + ((ScrollEvent) event).getDeltaY()); } }); stage.setScene(scene); stage.setWidth(300); stage.setHeight(300); stage.show(); } public static void main(String[] args) { launch(args); } }