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