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