KanizsaSquare.java
1    ///The painting of a colorful Kanizsa Square
2    package npw;
3    import java.awt.Color;
4    import java.awt.geom.Point2D;
5    import javax.swing.SwingUtilities;
6    import painter.SPainter;
7    import shapes.SCircle;
8    import shapes.SSquare;
9    
10   public class KanizsaSquare {
11   
12   
13       private void paintTheImage() {
14           SPainter painter = new SPainter("Kanizsa Square",400,400);
15           SCircle dot = new SCircle(75);
16   
17           Point2D.Double location1 = new Point2D.Double(100,100);
18           Point2D.Double location2 = new Point2D.Double(200,200);
19           Point2D.Double location3 = new Point2D.Double(300,300);
20           Point2D.Double location4 = new Point2D.Double(100,300);
21           Point2D.Double location5 = new Point2D.Double(300,100);
22   
23   
24           paintBlueCircle(painter, dot, location1);
25           paintRedCircle(painter, dot, location3);
26           paintGreenCircles(painter, dot, location4, location5);
27   
28           SSquare square = new SSquare(200);
29           paintWhiteSquare(painter, square, location2);
30   
31   
32   
33   
34       }
35   
36       private void paintWhiteSquare(SPainter painter, SSquare square, Point2D.Double location2) {
37           painter.setPosition(location2);
38           painter.setColor(Color.white);
39           painter.paint(square);
40   
41       }
42   
43   
44   
45       private void paintGreenCircles(SPainter painter, SCircle dot,  Point2D.Double location4, Point2D.Double location5) {
46           painter.setPosition(location4);
47           painter.setColor(Color.green);
48           painter.paint(dot);
49           painter.setPosition(location5);
50           painter.paint(dot);
51   
52       }
53   
54       private void paintRedCircle(SPainter painter, SCircle dot, Point2D.Double location3) {
55           painter.setPosition(location3);
56           painter.setColor(Color.red);
57           painter.paint(dot);
58       }
59   
60       private void paintBlueCircle(SPainter painter, SCircle dot, Point2D.Double location1) {
61           painter.setPosition(location1);
62           painter.setColor(Color.blue);
63           painter.paint(dot);
64   
65       }
66   
67   
68       public KanizsaSquare() {
69           paintTheImage();
70       }
71   
72       public static void main(String[] args) {
73           SwingUtilities.invokeLater(new Runnable() {
74               public void run() {
75                   new KanizsaSquare();
76               }
77           });
78       }
79   }