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