1 package npw; 2 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.SRectangle; 9 import shapes.SSquare; 10 11 public class KanizsaSquare { 12 13 //THE SOLUTION TO THE Kanizsa Square problem 14 15 private void paintTheImage() { 16 SPainter painter = new SPainter("Dots",1000,1000); 17 18 SCircle dot = new SCircle(75); 19 paintBlueCircle(painter, dot); 20 paintRedCircle(painter, dot); 21 paintGreenCircles(painter, dot); 22 paintYellowCircle(painter,dot); 23 SSquare square = new SSquare(250); 24 paintWhiteSquare(painter, square); 25 } 26 27 private void paintYellowCircle(SPainter painter, SCircle dot) { 28 painter.setColor(Color.green); 29 painter.mfd(200); 30 painter.paint(dot); 31 } 32 33 private void paintWhiteSquare(SPainter painter, SSquare square) { 34 painter.setColor(Color.white); 35 painter.mlt(100); 36 painter.mbk(100); 37 painter.paint(square); 38 } 39 40 private void paintGreenCircles(SPainter painter, SCircle dot) { 41 painter.setColor(Color.red); 42 painter.mrt(200); 43 painter.paint(dot); 44 } 45 46 private void paintRedCircle(SPainter painter, SCircle dot) { 47 painter.setColor(Color.green); 48 painter.mbk(200); 49 painter.paint(dot); 50 } 51 52 private void paintBlueCircle(SPainter painter, SCircle dot) { 53 painter.setColor(Color.blue); 54 painter.mlt(200); 55 painter.paint(dot); 56 } 57 58 //REQUIRED INFRASTRUCTURE 59 60 public KanizsaSquare() { 61 paintTheImage(); 62 } 63 64 public static void main(String[] args) { 65 SwingUtilities.invokeLater(new Runnable() { 66 public void run() { 67 new KanizsaSquare(); 68 } 69 }); 70 } 71 }