1 /* 2 program to paint a Kanizsa square. 3 */ 4 5 package npw; 6 7 import java.awt.Color; 8 import javax.swing.SwingUtilities; 9 import painter.SPainter; 10 import shapes.SCircle; 11 import shapes.SSquare; 12 13 public class KanizsaSquare { 14 private void paintTheImage() { 15 SPainter painter = new SPainter("Kanizsa Square",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 private void paintBlueCircle(SPainter painter, SCircle dot) { 27 painter.mlt(100); 28 painter.mfd(100); 29 painter.setColor(Color.blue); 30 painter.paint(dot); 31 painter.mbk(100); 32 painter.mrt(100); 33 } 34 35 private void paintRedCircle(SPainter painter, SCircle dot) { 36 painter.mrt(100); 37 painter.mbk(100); 38 painter.setColor(Color.red); 39 painter.paint(dot); 40 painter.mfd(100); 41 painter.mlt(100); 42 } 43 44 private void paintGreenCircles(SPainter painter, SCircle dot) { 45 painter.mrt(100); 46 painter.mfd(100); 47 painter.setColor(Color.green); 48 painter.paint(dot); 49 painter.mbk(200); 50 painter.mlt(200); 51 painter.paint(dot); 52 painter.mrt(100); 53 painter.mfd(100); 54 } 55 56 private void paintWhiteSquare(SPainter painter, SSquare square) { 57 painter.setColor(Color.white); 58 painter.paint(square); 59 } 60 61 // required infrastructure 62 public KanizsaSquare() { 63 paintTheImage(); 64 } 65 66 public static void main(String[] args) { 67 SwingUtilities.invokeLater(new Runnable() { 68 public void run() { 69 new KanizsaSquare(); 70 } 71 }); 72 } 73 }