KanizsaSquare.java
1    package npw;
2    
3    import java.awt.*;
4    import java.awt.geom.Point2D;
5    import javax.swing.*;
6    import painter.SPainter;
7    import shapes.SCircle;
8    import shapes.SSquare;
9    
10   import static javax.swing.Painter.*;
11   
12   public class KanizsaSquare {
13   
14       private void paintTheImage() {
15           SPainter painter = new SPainter("KanizaSquare", 400, 400);
16           SCircle dot = new SCircle(75);
17           paintBlueCircle(painter,dot);
18           paintRedCirlce(painter, dot);
19           paintGreenCircles(painter, dot);
20   
21   
22           SSquare square = new SSquare(200);
23           paintWhiteSquare(painter, square);
24       }
25   
26       private void paintBlueCircle(SPainter painter, SCircle dot) {
27           painter.setColor(Color.BLUE);
28           painter.mlt(100);
29           painter.mfd(100);
30           painter.paint(dot);
31           painter.mrt(100);
32           painter.mbk(100);
33   
34   
35       }
36   
37       private void paintRedCirlce(SPainter painter, SCircle dot) {
38           painter.setColor(Color.RED);
39           painter.mrt(100);
40           painter.mbk(100);
41           painter.paint(dot);
42           painter.mlt(100);
43           painter.mfd(100);
44   
45       }
46   
47       private void paintGreenCircles(SPainter painter, SCircle dot) {
48           painter.setColor(Color.GREEN);
49           painter.mfd(100);
50           painter.mrt(100);
51           painter.paint(dot);
52           painter.mbk(200);
53           painter.mlt(200);
54           painter.paint(dot);
55           painter.mrt(100);
56           painter.mfd(100);
57   
58       }
59   
60       private void paintWhiteSquare(SPainter painter, SSquare square) {
61         painter.setColor(Color.WHITE);
62         painter.paint(square);
63   
64       }
65   
66   
67   //REQUIRED INFRASTRUCTURE
68   
69       public KanizsaSquare() { 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   }
80