KanizsaSquare.java
1    /* 
2     * Assignment 1, Problem 2: Program for KanizaSquare 
3     */
4    package NPW;
5    
6    import painter.SPainter;
7    import shapes.SCircle;
8    import shapes.SSquare;
9    
10   import javax.swing.*;
11   import java.awt.*;
12   import java.awt.geom.Point2D;
13   
14   public class KanizsaSquare {
15       private void paintTheImage() {
16           SPainter picasso = new SPainter("Kanizsa Square", 400, 400);
17   
18           SCircle dot = new SCircle(75);
19           paintBlueDot(picasso, dot);
20           paintRedDot(picasso, dot);
21           paintGreenDot(picasso, dot);
22   
23           SSquare square = new SSquare(200);
24           paintWhiteSquare(picasso, square);
25   
26       }
27   
28       private void paintWhiteSquare(SPainter picasso, SSquare square) {
29           Point2D.Double center = new Point2D.Double(200,200);
30           picasso.setPosition(center);
31           picasso.setColor(Color.white);
32           picasso.paint(square);
33       }
34   
35       private void paintGreenDot(SPainter picasso, SCircle dot) {
36           Point2D.Double topright = new Point2D.Double(300,100);
37           picasso.setPosition(topright);
38           picasso.setColor(Color.GREEN);
39           picasso.paint(dot);
40           Point2D.Double bottomleft = new Point2D.Double(100,300);
41           picasso.setPosition(bottomleft);
42           picasso.setColor(Color.GREEN);
43           picasso.paint(dot);
44       }
45   
46       private void paintRedDot(SPainter picasso, SCircle dot) {
47           Point2D.Double bottomright = new Point2D.Double(300,300);
48           picasso.setPosition(bottomright);
49           picasso.setColor(Color.RED);
50           picasso.paint(dot);
51       }
52   
53       private void paintBlueDot(SPainter picasso, SCircle dot) {
54           Point2D.Double topleft = new Point2D.Double(100,100);
55           picasso.setPosition(topleft);
56           picasso.setColor(Color.BLUE);
57           picasso.paint(dot);
58   
59       }
60       // Required Infrastructure
61   
62       public KanizsaSquare() {
63           paintTheImage();
64       }
65       public static void main(String[] args) {
66           SwingUtilities.invokeLater(new Runnable() {
67               public void run() {
68                   new KanizsaSquare();
69               }
70           });
71       }
72   }
73