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.scene.paint.Paint; import javafx.stage.Stage; import java.util.ArrayList; import java.util.List; public class App extends Application { public static void main(String[] args) { launch(args); } @Override public void start(Stage primaryStage) { Group root = new Group(); Canvas canvas = new Canvas(260, 220); GraphicsContext graphicsContext = canvas.getGraphicsContext2D(); ShapeContainer shapeContainer = new ShapeContainer(); graphicsContext.setFill(Color.AQUAMARINE); graphicsContext.fillOval(10,10,10,10); Rectangle rectangle = new Rectangle(Color.BLUE,new Point2D(100,100), new Point2D(200,200)); shapeContainer.addShape(rectangle); List<Point2D> points = new ArrayList<>(); points.add(new Point2D(10,10)); points.add(new Point2D(100,40)); points.add(new Point2D(60,60)); points.add(new Point2D(40,100)); Polygon polygon = new Polygon(Color.BLACK,points); shapeContainer.addShape(polygon); BorderDecorator borderDecorator = new BorderDecorator(rectangle,10); borderDecorator.drawDecoration(graphicsContext); shapeContainer.draw(graphicsContext); root.getChildren().add(canvas); primaryStage.setScene(new Scene(root)); primaryStage.show(); } }