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