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