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