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