KanizsaSquare.java
1    package npw;
2    
3    import painter.SPainter;
4    import shapes.SCircle;
5    import shapes.SSquare;
6    import javax.swing.*;
7    import java.awt.*;
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       private void paintBlueCircle(SPainter painter, SCircle dot) {
24               painter.setColor(Color.BLUE);
25               painter.moveToCenter();
26               painter.mfd(100.0);
27               painter.mlt(100.0);
28               painter.paint(dot);
29       }
30   
31       private void paintRedCircle(SPainter painter, SCircle dot) {
32               painter.setColor(Color.RED);
33               painter.moveToCenter();
34               painter.mbk(100.0);
35               painter.ta();
36               painter.mlt(100.0);
37               painter.paint(dot);
38               painter.ta();
39       }
40   
41       private void paintWhiteSquare(SPainter painter, SSquare square) {
42               painter.setColor(Color.WHITE);
43               painter.moveToCenter();
44               painter.paint(square);
45       }
46   
47       private void paintGreenCircles(SPainter painter, SCircle dot) {
48               painter.setColor(Color.GREEN);
49               painter.moveToCenter();
50               painter.mfd(100.0);
51               painter.ta();
52               painter.mlt(100.0);
53               painter.paint(dot);
54               painter.ta();
55               painter.moveToCenter();
56               painter.mbk(100.0);
57               painter.mlt(100.0);
58               painter.paint(dot);
59       }
60   
61       public KanizsaSquare() { paintTheImage();
62           }
63   
64           public static void main (String[] args) {
65               SwingUtilities.invokeLater(new Runnable() {
66                   public void run() {
67                       new npw.KanizsaSquare();
68                   }
69   
70               });
71           }
72   
73   }
74