1 /* 2 *Program to make a Kanisza Square 3 */ 4 package npw; 5 import java.awt.Color; 6 import javax.swing.SwingUtilities; 7 import painter.SPainter; 8 import shapes. SSquare; 9 import shapes. SCircle; 10 11 public class KaniszaSquare { 12 private void paintTheImage(){ 13 SPainter painter = new SPainter("Kanizsa Square",400,400); 14 SSquare square = new SSquare(200); 15 SCircle dot = new SCircle(50); 16 17 drawBlackSquare(painter, square); 18 paintBlueCircles(painter, dot); 19 paintGreenCircles(painter, dot); 20 paintWhiteSquare(painter, square); 21 } 22 23 //Painting the objects 24 25 private void drawBlackSquare(SPainter painter, SSquare square) { 26 painter.setHeading(45); 27 painter.setColor(Color.BLACK); 28 painter.draw(square); 29 painter.setHeading(0); //Invariance 30 } 31 32 private void paintGreenCircles(SPainter painter, SCircle dot) { 33 painter.mfd(100); 34 painter.mrt(100); 35 painter.setColor(Color.GREEN); 36 painter.paint(dot); 37 painter.moveToCenter();//Invariance 38 painter.mbk(100); 39 painter.mlt(100); 40 painter.paint(dot); 41 painter.moveToCenter();//Invariance 42 } 43 44 private void paintBlueCircles(SPainter painter, SCircle dot) { 45 painter.mbk(100); 46 painter.mrt(100); 47 painter.setColor(Color.BLUE); 48 painter.paint(dot); 49 painter.moveToCenter();//Invariance 50 painter.mfd(100); 51 painter.mlt(100); 52 painter.paint(dot); 53 painter.moveToCenter();//Invariance 54 } 55 56 private void paintWhiteSquare(SPainter painter, SSquare square) { 57 painter.setColor(Color.WHITE); 58 painter.paint(square); 59 } 60 61 //Required Infrastucture 62 63 public KaniszaSquare(){ 64 paintTheImage(); 65 } 66 67 public static void main (String[] args) { 68 SwingUtilities.invokeLater(new Runnable() { 69 public void run() { 70 new KaniszaSquare(); 71 } 72 }); 73 } 74 } 75