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