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