1 /* 2 * Program to paint a blue dot in the context of the Nonrepresentational 3 * Painting World, NPW 4 */ 5 6 package npw; 7 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 // THE SOLUTION TO THE KanizsaSquare PROBLEM 17 18 private void paintTheImage() { 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 //REQUIRED INFRASTRUCTURE 30 31 public KanizsaSquare() { 32 paintTheImage(); 33 } 34 35 public static void main(String[] args){ 36 SwingUtilities.invokeLater(new Runnable() { 37 public void run() { 38 new KanizsaSquare(); 39 } 40 }); 41 } 42 private void paintRedCircle(SPainter painter, SCircle dot) { 43 painter.setColor(Color.red); 44 painter.mbk(100); 45 painter.mrt(100); 46 painter.paint(dot); 47 painter.mlt(100); 48 painter.mfd(100); 49 } 50 private void paintBlueCircle(SPainter painter, SCircle dot) { 51 painter.setColor(Color.blue); 52 painter.mfd(100); 53 painter.mlt(100); 54 painter.paint(dot); 55 painter.mrt(100); 56 painter.mbk(100); 57 } 58 59 private void paintGreenCircles(SPainter painter, SCircle dot) { 60 painter.setColor(Color.green); 61 painter.mfd(100); 62 painter.mrt(100); 63 painter.paint(dot); 64 painter.mlt(100); 65 painter.mlt(100); 66 painter.mbk(100); 67 painter.mbk(100); 68 painter.paint(dot); 69 painter.mrt(100); 70 painter.mfd(100); 71 } 72 private void paintWhiteSquare(SPainter painter, SSquare square) { 73 painter.setColor(Color.white); 74 painter.paint(square); 75 } 76 }