1 /* 2 *Program to paint a blue dot in the context of the Nonrepresentational 3 * Painting World< NPW 4 */ 5 package npw; 6 7 import java.awt.Color; 8 import java.awt.geom.Point2D; 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 BLUE DOT PROBLEM 17 private void paintTheImage() { 18 SPainter painter = new SPainter("Kanizsa Square",400,400); 19 20 SCircle dot = new SCircle(75); 21 paintBlueCircle(painter, dot); 22 paintRedCircle(painter, dot); 23 paintGreenCircles(painter, dot); 24 25 SSquare square = new SSquare(200); 26 paintWhiteSquare(painter, square); 27 28 } 29 30 private void paintBlueCircle(SPainter painter, SCircle dot) { 31 painter.mfd(100); 32 painter.mlt(100); 33 painter.setColor(Color.BLUE); 34 painter.paint(dot); 35 painter.moveToCenter(); 36 } 37 38 private void paintRedCircle(SPainter painter, SCircle dot) { 39 painter.mbk(100); 40 painter.mrt(100); 41 painter.setColor(Color.RED); 42 painter.paint(dot); 43 painter.moveToCenter(); 44 } 45 46 private void paintWhiteSquare(SPainter painter, SSquare square) { 47 painter.setColor(Color.WHITE); 48 painter.paint(square); 49 painter.moveToCenter(); 50 51 } 52 53 private void paintGreenCircles(SPainter painter, SCircle dot) { 54 painter.mfd(100); 55 painter.mrt(100); 56 painter.setColor(Color.GREEN); 57 painter.paint(dot); 58 painter.moveToCenter(); 59 painter.mbk(100); 60 painter.mlt(100); 61 painter.setColor(Color.GREEN); 62 painter.paint(dot); 63 painter.moveToCenter(); 64 65 66 } 67 68 // REQUIRED INFRASTRUCTURE 69 70 public KanizsaSquare() { 71 paintTheImage (); 72 } 73 74 public static void main (String [] args) { 75 SwingUtilities.invokeLater(new Runnable() { 76 public void run() { 77 new KanizsaSquare(); 78 } 79 }); 80 } 81 } 82