KanizsaSquare.java
1    package NPW;
2    
3    import java.awt.Color;
4    import javax.swing.SwingUtilities;
5    import painter.SPainter;
6    import shapes.SCircle;
7    import shapes.SSquare;
8    
9    public class KanizsaSquare {
10   
11       private void paintTheImage() {
12           SPainter painter = new SPainter("Kanizsa Square",400,400);
13   
14           SCircle dot = new SCircle(75);
15           paintBlueCircle(painter, dot);
16           paintRedCircle(painter, dot);
17           paintGreenCircles(painter, dot);
18   
19           SSquare square = new SSquare(200);
20           paintWhiteSquare(painter, square);
21       }
22       // REQUIRED INFRASTRUCTURE
23   
24       public KanizsaSquare() {
25           paintTheImage();
26       }
27       public static void main(String[] args) {
28           SwingUtilities.invokeLater(new Runnable() {
29               public void run() {
30                   new KanizsaSquare();
31               }
32           });
33       }
34   
35       private void paintBlueCircle(SPainter painter,SCircle dot) {
36           painter.setColor(Color.BLUE);
37           painter.mfd(dot.radius());
38           painter.mlt(dot.radius());
39           painter.mfd(dot.radius()/2);
40           painter.mlt(dot.radius()/2);
41           painter.paint(dot);
42           painter.moveToCenter();
43   
44   
45       }
46   
47       private void paintRedCircle(SPainter painter, SCircle dot) {
48           painter.setColor(Color.RED);
49           painter.mbk(dot.radius());
50           painter.mrt(dot.radius());
51           painter.mbk(dot.radius()/2);
52           painter.mrt(dot.radius()/2);
53           painter.paint(dot);
54           painter.moveToCenter();
55       }
56   
57       private void paintGreenCircles(SPainter painter, SCircle dot) {
58           painter.setColor(Color.GREEN);
59           painter.mfd(dot.radius());
60           painter.mrt(dot.radius());
61           painter.mfd(dot.radius()/2);
62           painter.mrt(dot.radius()/2);
63           painter.paint(dot);
64           painter.moveToCenter();
65           painter.mbk(dot.radius());
66           painter.mlt(dot.radius());
67           painter.mbk(dot.radius()/2);
68           painter.mlt(dot.radius()/2);
69           painter.paint(dot);
70           painter.moveToCenter();
71       }
72   
73       private void paintWhiteSquare(SPainter painter, SSquare square) {
74           painter.setColor(Color.WHITE);
75           painter.paint(square);
76       }
77   }
78