KaniszaSquare.java
1    package npw;
2    
3    import painter.SPainter;
4    import shapes.SCircle;
5    import shapes.SSquare;
6    
7    
8    
9    
10   //program to paint a kanizsa square in the context of the nonrepresentational paint world, NPW
11   import java.awt.Color;
12   import javax.swing.SwingUtilities;
13   
14   
15   public class KaniszaSquare {
16       // solution to the bluedot problem
17       private void paintTheImage() {
18           SPainter painter = new SPainter("Kanisza Square",400,400);
19   
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   
30       private void paintWhiteSquare(SPainter painter, SSquare square) {
31           painter.setColor(Color.WHITE);
32           painter.paint(square);
33       }
34   
35       private void paintGreenCircles(SPainter painter, SCircle dot) {
36           painter.setColor(Color.GREEN);
37           painter.mfd(100);
38           painter.mrt(100);
39           painter.paint(dot);
40           painter.mbk(200);
41           painter.mlt(200);
42           painter.paint(dot);
43           painter.moveToCenter();
44       }
45   
46       private void paintRedCircle(SPainter painter, SCircle dot) {
47           painter.setColor(Color.RED);
48           painter.mbk(100);
49           painter.mrt(100);
50           painter.paint(dot);
51           painter.mfd(100);
52   
53           painter.mlt(100);
54   
55       }
56   
57       private void paintBlueCircle(SPainter painter, SCircle dot) {
58           painter.setColor(Color.BLUE);
59           painter.mfd(100);
60           painter.mlt(100);
61           painter.paint(dot);
62           painter.mrt(100);
63           painter.mbk(100);
64       }
65   
66   
67   
68       // REQUIRED INFRASTRUCTURE
69       public KaniszaSquare() {
70           paintTheImage();
71       }
72       public static void main(String[] args) {
73           SwingUtilities.invokeLater(new Runnable() {
74               public void run() {
75                   new KaniszaSquare();
76               }
77           });
78       }
79   }
80   
81   
82   
83   
84   
85   
86   
87   
88   
89   
90   
91