1 /* 2 * Kanizsa Square for assignment one 3 */ 4 5 package npw; 6 7 import java.awt.Color; 8 import javax.swing.SwingUtilities; 9 import painter.SPainter; 10 import shapes.SCircle; 11 import shapes.SSquare; 12 13 14 public class KanizsaSquare { 15 16 // THE SOLUTION TO THE KANIZSA SQUARE PROBLEM 17 private void paintTheImage() { 18 19 SPainter painter = new SPainter("Kanizsa Square",400,400); 20 21 SCircle dot = new SCircle(75); 22 paintBlueCircle(painter, dot); 23 paintRedCircle(painter, dot); 24 paintGreenCircles(painter, dot); 25 26 SSquare square = new SSquare(200); 27 paintWhiteSquare(painter, square); 28 } 29 30 private void paintWhiteSquare(SPainter painter, SSquare square) { 31 painter.setColor(Color.white); 32 painter.paint(square); 33 } 34 35 36 private void paintGreenCircles(SPainter painter, SCircle dot) { 37 painter.mfd(100); 38 painter.mrt(100); 39 painter.setColor(Color.green); 40 painter.paint(dot); 41 painter.moveToCenter(); 42 painter.mbk(100); 43 painter.mlt(100); 44 painter.paint(dot); 45 painter.moveToCenter(); 46 } 47 48 private void paintRedCircle(SPainter painter, SCircle dot) { 49 painter.mbk(100); 50 painter.mrt(100); 51 painter.setColor(Color.red); 52 painter.paint(dot); 53 painter.moveToCenter(); 54 } 55 56 private void paintBlueCircle(SPainter painter, SCircle dot) { 57 painter.mfd(100); 58 painter.mlt(100); 59 painter.setColor(Color.blue); 60 painter.paint(dot); 61 painter.moveToCenter(); 62 } 63 64 //REQUIRED INFRASTRUCTURE 65 66 public KanizsaSquare() { 67 paintTheImage(); 68 } 69 70 public static void main(String[] args) { 71 SwingUtilities.invokeLater(new Runnable() { 72 public void run() { 73 new KanizsaSquare(); 74 } 75 }); 76 } 77 }