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