Skip to content
Snippets Groups Projects
App.java 1.81 KiB
Newer Older
  • Learn to ignore specific revisions
  • BasileCouetoux's avatar
    BasileCouetoux committed
    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
    
    BasileCouetoux's avatar
    BasileCouetoux committed
        }
    
        @Override
        public void start(Stage primaryStage) {
    
            // Créer un groupe racine pour contenir le Canvas
    
    BasileCouetoux's avatar
    BasileCouetoux committed
            Group root = new Group();
    
    
            // Créer un canvas sur lequel on va dessiner
            Canvas canvas = new Canvas(300, 300);
    
    BasileCouetoux's avatar
    BasileCouetoux committed
            GraphicsContext graphicsContext = canvas.getGraphicsContext2D();
    
    
            // Créer un ShapeContainer pour stocker les formes
    
    BasileCouetoux's avatar
    BasileCouetoux committed
            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
        }
    }