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 //THE SOLUTION TO THE BLUE DOT PROBLEM 11 private void paintTheImage() { 12 SPainter painter = new SPainter("Kanizsa Square",400,400); 13 SCircle dot = new SCircle(75); 14 paintBlueCircle(painter, dot); 15 paintRedCircle(painter, dot); 16 paintGreenCircles(painter, dot); 17 SSquare square = new SSquare(200); 18 paintWhiteSquare(painter, square); 19 } 20 21 private void paintBlueCircle(SPainter painter, SCircle dot) { 22 painter.setColor(Color.BLUE); 23 painter.mfd(100); 24 painter.mlt(100); 25 painter.paint(dot); 26 painter.moveToCenter(); 27 } 28 29 private void paintRedCircle(SPainter painter, SCircle dot) { 30 painter.setColor(Color.RED); 31 painter.mbk(100); 32 painter.mrt(100); 33 painter.paint(dot); 34 painter.moveToCenter(); 35 } 36 37 private void paintGreenCircles(SPainter painter, SCircle dot) { 38 painter.setColor(Color.GREEN); 39 painter.mfd(100); 40 painter.mrt(100); 41 painter.paint(dot); 42 painter.moveToCenter(); 43 painter.mbk(100); 44 painter.mlt(100); 45 painter.paint(dot); 46 painter.moveToCenter(); 47 } 48 49 private void paintWhiteSquare(SPainter painter, SSquare square) { 50 painter.setColor(Color.WHITE); 51 painter.paint(square); 52 } 53 54 //Required Infrastructure 55 public KanizsaSquare() { 56 paintTheImage(); 57 } 58 59 public static void main(String[] args) { 60 SwingUtilities.invokeLater(new Runnable() { 61 public void run(){ 62 new KanizsaSquare(); 63 } 64 }); 65 } 66 67 } 68