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