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 // THE SOLUTION TO THE KANIZSASQUARE PROBLEM 12 13 14 private void paintTheImage() { 15 SPainter painter = new SPainter("KanizsaSquare", 400, 400); 16 17 SCircle dot = new SCircle(75); 18 paintBlueCircle(painter, dot); 19 paintRedCircle(painter, dot); 20 paintGreenCircles(painter, dot); 21 22 SSquare square = new SSquare(200); 23 paintWhiteSquare(painter, square); 24 25 26 } 27 28 private void paintBlueCircle(SPainter painter, SCircle dot) { 29 painter.mfd(100); 30 painter.mlt(100); 31 painter.setColor(Color.blue); 32 painter.paint(dot); 33 painter.moveToCenter(); 34 } 35 36 private void paintGreenCircles(SPainter painter, SCircle dot) { 37 painter.mfd(100); 38 painter.mlt(-100); 39 painter.setColor(Color.green); 40 painter.paint(dot); 41 painter.moveToCenter(); 42 painter.mbk(100); 43 painter.mlt(100); 44 painter.paint(dot); 45 painter.moveToCenter(); 46 47 } 48 49 50 51 private void paintRedCircle(SPainter painter, SCircle dot) { 52 painter.mbk(100); 53 painter.mlt(-100); 54 painter.setColor(Color.red); 55 painter.paint(dot); 56 painter.moveToCenter(); 57 } 58 59 60 61 private void paintWhiteSquare(SPainter painter, SSquare square) { 62 painter.setColor(Color.white); 63 painter.paint(square); 64 } 65 66 67 68 //required BlueDot() 69 public KanizsaSquare(){ 70 paintTheImage(); 71 } 72 public static void main(String[] args) { 73 SwingUtilities.invokeLater(new Runnable() { 74 public void run() { 75 new KanizsaSquare(); 76 } 77 }); 78 } 79 } 80 81 82 83 84 85 86