1package com.example.graphics.render;
3import com.example.graphics.model.Circle;
4import com.example.graphics.model.Line;
5import com.example.graphics.model.Rectangle;
6import com.example.graphics.model.Triangle;
10import java.awt.geom.Ellipse2D;
11import java.awt.geom.Line2D;
12import java.awt.geom.Path2D;
13import java.util.ArrayList;
22 private final List<java.awt.Shape>
shapes;
29 this.shapes =
new ArrayList<>();
30 this.shapeColors =
new ArrayList<>();
35 shapes.add(
new Ellipse2D.Double(
44 shapes.add(
new Ellipse2D.Double(
55 shapes.add(
new java.awt.Rectangle(
66 shapes.add(
new Line2D.Double(
75 shapes.add(
new Ellipse2D.Double(
83 shapes.add(
new Ellipse2D.Double(
95 Path2D path =
new Path2D.Double();
96 path.moveTo(triangle.
getX1(), triangle.
getY1());
97 path.lineTo(triangle.
getX2(), triangle.
getY2());
98 path.lineTo(triangle.
getX3(), triangle.
getY3());
105 shapes.add(
new Ellipse2D.Double(
106 triangle.
getX1() - 3,
107 triangle.
getY1() - 3,
113 shapes.add(
new Ellipse2D.Double(
114 triangle.
getX2() - 3,
115 triangle.
getY2() - 3,
121 shapes.add(
new Ellipse2D.Double(
122 triangle.
getX3() - 3,
123 triangle.
getY3() - 3,
154 protected void paintComponent(Graphics g) {
155 super.paintComponent(g);
156 Graphics2D g2d = (Graphics2D) g;
157 g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
163 for (
int i = 0; i <
shapes.size(); i++) {
165 g2d.setStroke(
new BasicStroke(2));
170 private void drawGrid(Graphics2D g2d) {
171 g2d.setColor(
new Color(240, 240, 240));
172 g2d.setStroke(
new BasicStroke(1));
175 for (
int y = 0; y <
height; y += 20) {
176 g2d.drawLine(0, y,
width, y);
180 for (
int x = 0; x <
width; x += 20) {
181 g2d.drawLine(x, 0, x,
height);
void renderCircle(Circle circle)
void renderTriangle(Triangle triangle)
void renderRectangle(Rectangle rectangle)
void renderLine(Line line)
SwingRenderer(int width, int height)
final List< java.awt.Shape > shapes
final List< Color > shapeColors