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