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