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