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 11 private void paintTheImage() { 12 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 22 paintWhiteSquare(painter, square); 23 24 } 25 26 private void paintWhiteSquare(SPainter painter, SSquare square) { 27 painter.moveToCenter(); // start at center 28 painter.setColor(Color.WHITE); 29 painter.paint(square); 30 } 31 32 private void paintRedCircle(SPainter painter, SCircle dot) { 33 painter.moveToCenter(); // return to start at center 34 painter.mrt(100); // move right 35 painter.mbk(100); // move down 36 painter.setColor(Color.RED); 37 painter.paint(dot); 38 } 39 40 private void paintGreenCircles(SPainter painter, SCircle dot) { 41 painter.moveToCenter(); // return to start at center 42 painter.mlt(100); // move left 43 painter.mbk(100); // move down the canvas 44 painter.setColor(Color.GREEN); 45 painter.paint(dot); 46 painter.moveToCenter(); // return to start at center 47 painter.mrt(100); // move right 48 painter.mfd(100); // move up the canvas 49 painter.setColor(Color.GREEN); 50 painter.paint(dot); 51 52 } 53 54 private void paintBlueCircle(SPainter painter, SCircle dot) { 55 painter.moveToCenter(); // return to start at center 56 painter.mlt(100); // move left 57 painter.mfd(100); // move up canvas 58 painter.setColor(Color.BLUE); 59 painter.paint(dot); 60 } 61 62 public KanizsaSquare() { 63 paintTheImage(); 64 } 65 66 public static void main(String[] args) { 67 SwingUtilities.invokeLater(new Runnable() { 68 public void run() { 69 new KanizsaSquare(); 70 } 71 }); 72 } 73 74 }