package shape; import javafx.application.Application; import javafx.geometry.Point2D; import javafx.scene.Group; import javafx.scene.Scene; import javafx.scene.canvas.Canvas; import javafx.scene.canvas.GraphicsContext; import javafx.scene.paint.Color; import javafx.stage.Stage; public class App extends Application { public static void main(String[] args) { launch(args); // Lance l'application JavaFX } @Override public void start(Stage primaryStage) { // Créer un groupe racine pour contenir le Canvas Group root = new Group(); // Créer un canvas sur lequel on va dessiner Canvas canvas = new Canvas(300, 300); GraphicsContext graphicsContext = canvas.getGraphicsContext2D(); // Créer un ShapeContainer pour stocker les formes ShapeContainer shapeContainer = new ShapeContainer(); // Ajouter des formes et appliquer des décorateurs Shape polygon = new Polygon(Color.BLUE, new Point2D(50, 50), new Point2D(100, 50), new Point2D(75, 100)); Shape decoratedPolygon = new BorderDecorator(polygon, 10); // Ajouter une bordure au polygone Shape centerDecoratedPolygon = new CenterDecorator(decoratedPolygon, 5); // Ajouter un cercle au centre // Ajouter la forme décorée au conteneur shapeContainer.add(centerDecoratedPolygon); // Dessiner toutes les formes dans le GraphicsContext shapeContainer.draw(graphicsContext); // Ajouter le canvas au groupe racine root.getChildren().add(canvas); // Créer une scène et l'ajouter à la fenêtre principale Scene scene = new Scene(root, 300, 300); primaryStage.setScene(scene); primaryStage.setTitle("Dessin de Formes avec Décorateurs"); primaryStage.show(); // Afficher la fenêtre } }