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   
13           SPainter painter = new SPainter("Kanizsa Square", 400, 400);
14   
15           SCircle dot = new SCircle(75);
16           paintBlueCircle(painter, dot);
17           paintRedCircle(painter, dot);
18           paintGreenCircles(painter, dot);
19   
20           SSquare square = new SSquare(200);
21           
22           paintWhiteSquare(painter, square);
23   
24       }
25   
26       private void paintWhiteSquare(SPainter painter, SSquare square) {
27           painter.moveToCenter(); // start at center
28           painter.setColor(Color.WHITE);
29           painter.paint(square);
30       }
31   
32       private void paintRedCircle(SPainter painter, SCircle dot) {
33           painter.moveToCenter(); // return to start at center
34           painter.mrt(100); // move right
35           painter.mbk(100); // move down
36           painter.setColor(Color.RED);
37           painter.paint(dot);
38       }
39   
40       private void paintGreenCircles(SPainter painter, SCircle dot) {
41           painter.moveToCenter(); // return to start at center
42           painter.mlt(100); // move left
43           painter.mbk(100); // move down the canvas
44           painter.setColor(Color.GREEN);
45           painter.paint(dot);
46           painter.moveToCenter(); // return to start at center
47           painter.mrt(100); // move right
48           painter.mfd(100); // move up the canvas
49           painter.setColor(Color.GREEN);
50           painter.paint(dot);
51   
52       }
53   
54       private void paintBlueCircle(SPainter painter, SCircle dot) {
55           painter.moveToCenter(); // return to start at center
56           painter.mlt(100); // move left
57           painter.mfd(100); // move up canvas
58           painter.setColor(Color.BLUE);
59           painter.paint(dot);
60       }
61       
62       public KanizsaSquare() {
63           paintTheImage();
64       }
65   
66       public static void main(String[] args) {
67           SwingUtilities.invokeLater(new Runnable() {
68               public void run() {
69                   new KanizsaSquare();
70               }
71           });
72       }
73   
74   }