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 // THE SOLUTION TO THE BLUE DOT PROBLEM 16 17 private void paintingCode() { 18 SPainter painter = new SPainter("Blue Dot", 400, 400); 19 SCircle dot = new SCircle(75); 20 paintBlueCircle(painter, dot); 21 paintRedCircle(painter, dot); 22 paintGreenCircle(painter, dot); 23 paintGreenCircle2(painter, dot); 24 25 SSquare square = new SSquare(200); 26 paintWhiteSquare(painter, square); 27 } 28 29 // REQUIRED INFRASTRUCTURE 30 31 public KanizsaSquare() { 32 paintingCode(); 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 43 private void paintBlueCircle(SPainter painter, SCircle dot) { 44 painter.mlt(100); 45 painter.mfd(100); 46 painter.setColor(Color.BLUE); 47 painter.paint(dot); 48 painter.mrt(100); 49 painter.mbk(100); 50 51 } 52 53 private void paintRedCircle(SPainter painter, SCircle dot) { 54 painter.mbk(100); 55 painter.mrt(100); 56 painter.setColor(Color.RED); 57 painter.paint(dot); 58 painter.mfd(100); 59 painter.mlt(100); 60 } 61 62 private void paintGreenCircle(SPainter painter, SCircle dot) { 63 painter.mbk(100); 64 painter.mlt(100); 65 painter.setColor(Color.GREEN); 66 painter.paint(dot); 67 painter.mfd(100); 68 painter.mrt(100); 69 } 70 71 private void paintGreenCircle2(SPainter painter, SCircle dot) { 72 painter.mfd(100); 73 painter.mrt(100); 74 painter.paint(dot); 75 painter.mbk(100); 76 painter.mlt(100); 77 } 78 79 private void paintWhiteSquare(SPainter painter, SSquare square) { 80 painter.setColor(Color.WHITE); 81 painter.paint(square); 82 } 83 }