1 ///The painting of a colorful Kanizsa Square 2 package npw; 3 import java.awt.Color; 4 import java.awt.geom.Point2D; 5 import javax.swing.SwingUtilities; 6 import painter.SPainter; 7 import shapes.SCircle; 8 import shapes.SSquare; 9 10 public class KanizsaSquare { 11 12 13 private void paintTheImage() { 14 SPainter painter = new SPainter("Kanizsa Square",400,400); 15 SCircle dot = new SCircle(75); 16 17 Point2D.Double location1 = new Point2D.Double(100,100); 18 Point2D.Double location2 = new Point2D.Double(200,200); 19 Point2D.Double location3 = new Point2D.Double(300,300); 20 Point2D.Double location4 = new Point2D.Double(100,300); 21 Point2D.Double location5 = new Point2D.Double(300,100); 22 23 24 paintBlueCircle(painter, dot, location1); 25 paintRedCircle(painter, dot, location3); 26 paintGreenCircles(painter, dot, location4, location5); 27 28 SSquare square = new SSquare(200); 29 paintWhiteSquare(painter, square, location2); 30 31 32 33 34 } 35 36 private void paintWhiteSquare(SPainter painter, SSquare square, Point2D.Double location2) { 37 painter.setPosition(location2); 38 painter.setColor(Color.white); 39 painter.paint(square); 40 41 } 42 43 44 45 private void paintGreenCircles(SPainter painter, SCircle dot, Point2D.Double location4, Point2D.Double location5) { 46 painter.setPosition(location4); 47 painter.setColor(Color.green); 48 painter.paint(dot); 49 painter.setPosition(location5); 50 painter.paint(dot); 51 52 } 53 54 private void paintRedCircle(SPainter painter, SCircle dot, Point2D.Double location3) { 55 painter.setPosition(location3); 56 painter.setColor(Color.red); 57 painter.paint(dot); 58 } 59 60 private void paintBlueCircle(SPainter painter, SCircle dot, Point2D.Double location1) { 61 painter.setPosition(location1); 62 painter.setColor(Color.blue); 63 painter.paint(dot); 64 65 } 66 67 68 public KanizsaSquare() { 69 paintTheImage(); 70 } 71 72 public static void main(String[] args) { 73 SwingUtilities.invokeLater(new Runnable() { 74 public void run() { 75 new KanizsaSquare(); 76 } 77 }); 78 } 79 }