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