diff --git a/src/main/java/shape/App.java b/src/main/java/shape/App.java index 3cc64e6a346e40b52a7282ec959496a85742f060..328f71907414def4b54eb6b1279b9b177d990065 100644 --- a/src/main/java/shape/App.java +++ b/src/main/java/shape/App.java @@ -7,34 +7,44 @@ import javafx.scene.Scene; import javafx.scene.canvas.Canvas; import javafx.scene.canvas.GraphicsContext; import javafx.scene.paint.Color; -import javafx.scene.paint.Paint; import javafx.stage.Stage; - - - public class App extends Application { public static void main(String[] args) { - launch(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(); - Canvas canvas = new Canvas(130, 110); + + // 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(); - graphicsContext.setFill(Color.AQUAMARINE); - graphicsContext.fillOval(10,10,10,10); - shapeContainer.add(new Rectangle(Color.BLUE,new Point2D(10,10), new Point2D(40,40))); - shapeContainer.draw(graphicsContext); - root.getChildren().add(canvas); - primaryStage.setScene(new Scene(root)); - primaryStage.show(); - } + // 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); -} \ No newline at end of file + // 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 + } +}