Skip to content
Snippets Groups Projects
Forked from SAYEH Nahlane ghina / graphic-2020..
5 commits ahead of the upstream repository.
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
App.java 1.81 KiB
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
    }
}