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