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