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