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       }
23   
24       private void paintWhiteSquare(SPainter painter, SSquare square) {
25           painter.setColor(Color.white);
26           painter.paint(square);
27   
28       }
29   
30       private void paintGreenCircles(SPainter painter, SCircle dot) {
31           painter.setColor(Color.green);
32           painter.mfd(100);
33           painter.mrt(100);
34           painter.paint(dot);
35           painter.moveToCenter();
36   
37           painter.mbk(100);
38           painter.mlt(100);
39           painter.paint(dot);
40           painter.moveToCenter();
41       }
42   
43       private void paintRedCircle(SPainter painter, SCircle dot) {
44           painter.setColor(Color.red);
45           painter.mbk(100);
46           painter.mrt(100);
47           painter.paint(dot);
48           painter.moveToCenter();
49       }
50   
51       private void paintBlueCircle(SPainter painter, SCircle dot) {
52           painter.setColor(Color.blue);
53           painter.mfd(100);
54           painter.mlt(100);
55           painter.paint(dot);
56           painter.moveToCenter();
57       }
58   
59       // REQUIRED INFRASTRUCTURE
60   
61       public KanizsaSquare() {
62           paintTheImage();
63       }
64   
65       public static void main(String[] args) {
66           SwingUtilities.invokeLater(new Runnable() {
67               public void run() {
68                   new KanizsaSquare();
69               }
70           });
71       }
72   }