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