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