1 2 package npw; 3 4 import java.awt.Color; 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 14 // THE SOLUTION TO THE KanizaSquare PROBLEM 15 private void paintTheImage() { 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 painter.setColor(Color.WHITE); 29 painter.paint(square); 30 31 32 } 33 34 private void paintGreenCircles(SPainter painter, SCircle dot) { 35 painter.setColor(Color.GREEN); 36 painter.mbk(100); 37 painter.mlt(100); 38 painter.paint(dot); 39 painter.moveToCenter(); 40 painter.mfd(100); 41 painter.mrt(100); 42 painter.paint(dot); 43 painter.moveToCenter(); 44 45 } 46 47 private void paintRedCircle(SPainter painter, SCircle dot) { 48 painter.setColor(Color.RED); 49 painter.mbk(100); 50 painter.mrt(100); 51 painter.paint(dot); 52 painter.moveToCenter(); 53 54 } 55 56 private void paintBlueCircle(SPainter painter, SCircle dot) { 57 painter.setColor(Color.BLUE); 58 painter.mlt(100); 59 painter.mfd(100); 60 painter.paint(dot); 61 painter.moveToCenter(); 62 63 } 64 65 //REQUIRED INFRASTRUCTURE 66 67 public KanizsaSquare() { 68 paintTheImage(); 69 } 70 71 public static void main(String[] args) { 72 SwingUtilities.invokeLater(new Runnable () { 73 public void run() { 74 new KanizsaSquare(); 75 } 76 }) ; 77 } 78 }