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 private void paintWhiteSquare(SPainter painter, SSquare square) { 26 painter.moveToCenter(); 27 painter.setColor(Color.WHITE); 28 painter.paint(square); 29 } 30 31 private void paintBlueCircle(SPainter painter, SCircle dot) { 32 painter.moveToCenter(); 33 painter.mfd(100); 34 painter.mlt(100); 35 painter.setColor(Color.BLUE); 36 painter.paint(dot); 37 } 38 39 private void paintRedCircle(SPainter painter, SCircle dot) { 40 painter.moveToCenter(); 41 painter.mbk(100); 42 painter.mrt(100); 43 painter.setColor(Color.RED); 44 painter.paint(dot); 45 } 46 47 private void paintGreenCircles(SPainter painter, SCircle dot) { 48 painter.moveToCenter(); 49 painter.mbk(100); 50 painter.mlt(100); 51 painter.setColor(Color.GREEN); 52 painter.paint(dot); 53 painter.moveToCenter(); 54 painter.mfd(100); 55 painter.mrt(100); 56 painter.paint(dot); 57 } 58 59 // REQUIRED INFRASTRUCTURE 60 61 public KanizsaSquare() { 62 paintTheImage(); 63 } 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