KanizsaSquare.java
1    package npw;
2    
3    import painter.SPainter;
4    import shapes.SSquare;
5    import shapes.SCircle;
6    
7    import javax.swing.*;
8    import java.awt.*;
9    
10   public class KanizsaSquare {
11   
12       private void paintTheImage() {
13           SPainter painter = new SPainter("Kanizsa Square",400,400);
14   
15           SSquare square = new SSquare(200);
16           SCircle dot = new SCircle(50);
17   
18           drawBlackSquare(painter, square);
19           paintBlueCircles(painter, dot);
20           paintGreenCircles(painter, dot);
21           paintWhiteSquare(painter, square);
22       }
23   
24       private void paintWhiteSquare(SPainter painter, SSquare square) {
25           painter.setColor(Color.white);
26           painter.moveToCenter();
27           painter.paint(square);
28       }
29   
30   
31       private void paintGreenCircles(SPainter painter, SCircle dot) {
32           painter.setColor(Color.green);
33           painter.setHeading(45);
34           painter.mrt(145);
35           painter.paint(dot);
36           painter.mlt(290);
37           painter.paint(dot);
38           painter.faceNorth();
39       }
40   
41   
42       private void paintBlueCircles(SPainter painter, SCircle dot) {
43           painter.setColor(Color.blue);
44           painter.setHeading(45);
45           painter.mfd(145);
46           painter.paint(dot);
47           painter.mbk(290);
48           painter.paint(dot);
49           painter.mfd(145);
50           painter.faceNorth();
51       }
52   
53       private void drawBlackSquare(SPainter painter, SSquare square) {
54           painter.setColor(Color.black);
55           painter.tl(45);
56           painter.draw(square);
57       }
58   
59   
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   }