KanizaSquare.java
1    /* 
2     *Program to paint a blue dot in the context of the Nonrepresentational 
3     * Painting World, NPW 
4     */
5    package npw;
6    
7    //import the functions you'll be using
8    import java.awt.Color;
9    import javax.swing.SwingUtilities;
10   import painter.SPainter;
11   import shapes.SCircle;
12   import shapes.SSquare;
13   
14   public class KanizaSquare {
15       //THE SOLUTION TO THE KANIZSA SQUARE PROBLEM; create a painter
16       private void paintTheImage() {
17           SPainter painter = new SPainter("Kanizsa Square",400,400);
18   
19           //use the code online to create the cirlcles and square(main method)
20           SCircle dot = new SCircle(75);
21           paintBlueCircle(painter, dot);
22           paintRedCircle(painter, dot);
23           paintGreenCircles(painter, dot);
24   
25           SSquare square = new SSquare(200);
26           paintWhiteSquare(painter, square);
27       }
28   
29       //REQUIRED INFRASTRUCTURE
30   
31       public KanizaSquare() {
32           paintTheImage();
33       }
34   
35       public static void main(String[] args) {
36           SwingUtilities.invokeLater(new Runnable() {
37               public void run() {
38                   new KanizaSquare();
39               }
40           });
41       }
42   
43       //create the "sub-methods" to create the circles and square while keeping invariant
44   
45       private void paintBlueCircle(SPainter painter, SCircle dot) {
46           painter.setColor(Color.BLUE);
47           painter.mfd(100.0);
48           painter.mlt(100.0);
49           painter.paint(dot);
50           painter.moveToCenter();
51   
52       }
53   
54       private void paintRedCircle(SPainter painter, SCircle dot) {
55           painter.setColor(Color.RED);
56           painter.mbk(100.0);
57           painter.mrt(100.0);
58           painter.paint(dot);
59           painter.moveToCenter();
60   
61       }
62   
63       private void paintGreenCircles(SPainter painter, SCircle dot) {
64           painter.setColor(Color.GREEN);
65           painter.mfd(100.0);
66           painter.mrt(100.0);
67           painter.paint(dot);
68           painter.mbk(200.0);
69           painter.mlt(200.0);
70           painter.paint(dot);
71           painter.moveToCenter();
72   
73       }
74   
75       private void paintWhiteSquare(SPainter painter, SSquare square) {
76           painter.setColor(Color.WHITE);
77           painter.paint(square);
78   
79       }
80   }
81