1 /* 2 * Program that completes the Kanizsa Square Challenge 3 */ 4 5 package npw; 6 7 // Imports 8 import java.awt.Color; 9 import javax.swing.SwingUtilities; 10 import painter.SPainter; 11 import shapes.SCircle; 12 import shapes.SSquare; 13 14 public class KanizsaSquare { 15 16 // Paints the image // 17 private void paintTheImage(){ 18 19 // Creates painter and canvas 20 SPainter painter = new SPainter("Kanizsa Square",400,400); 21 22 // Creates circle 23 SCircle dot = new SCircle(75); 24 25 // Function calls to paint circles 26 paintBlueCircle(painter, dot); 27 paintRedCircle(painter, dot); 28 paintGreenCircles(painter, dot); 29 30 // Creates square 31 SSquare square = new SSquare(200); 32 33 // Function call to paint white square 34 paintWhiteSquare(painter, square); 35 } 36 37 // Paints the Blue Circle // 38 private void paintBlueCircle(SPainter painter, SCircle dot) { 39 40 // Changes the color 41 painter.setColor(Color.BLUE); 42 43 // Moves painter to position and paints 44 painter.mlt(100); 45 painter.mfd(100); 46 painter.paint(dot); 47 48 // Invariance of location 49 painter.mrt(100); 50 painter.mbk(100); 51 } 52 53 // Paints the Red Circle // 54 private void paintRedCircle(SPainter painter, SCircle dot) { 55 56 // Changes the Color 57 painter.setColor(Color.RED); 58 59 // Moves painter to position and paints 60 painter.mrt(100); 61 painter.mbk(100); 62 painter.paint(dot); 63 64 // Invariance of location 65 painter.mlt(100); 66 painter.mfd(100); 67 } 68 69 // Paints the Green Circles // 70 private void paintGreenCircles(SPainter painter, SCircle dot){ 71 // Changes the color 72 painter.setColor(Color.GREEN); 73 74 // Moves painter to position and paints 75 painter.mlt(100); 76 painter.mbk(100); 77 painter.paint(dot); 78 79 // Moves painter to next position and paints 80 painter.mfd(200); 81 painter.mrt(200); 82 painter.paint(dot); 83 84 // Invariance of location 85 painter.mbk(100); 86 painter.mlt(100); 87 } 88 89 // Paints the White Square // 90 private void paintWhiteSquare(SPainter painter, SSquare square) { 91 // Changes the Color 92 painter.setColor(Color.WHITE); 93 // Paints the square 94 painter.paint(square); 95 } 96 97 // REQUIRED INFRASTRUCTURE // 98 public KanizsaSquare(){ 99 paintTheImage(); 100 } 101 102 public static void main(String[] args){ 103 SwingUtilities.invokeLater(new Runnable(){ 104 public void run(){ 105 new KanizsaSquare(); 106 } 107 }); 108 } 109 } 110