1 /* 2 *Program to paint a blue dot in the context of the Nonrepresentational 3 * Painting World, NPW 4 */ 5 package npw; 6 7 //import the functions you'll be using 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 KanizaSquare { 15 //THE SOLUTION TO THE KANIZSA SQUARE PROBLEM; create a painter 16 private void paintTheImage() { 17 SPainter painter = new SPainter("Kanizsa Square",400,400); 18 19 //use the code online to create the cirlcles and square(main method) 20 SCircle dot = new SCircle(75); 21 paintBlueCircle(painter, dot); 22 paintRedCircle(painter, dot); 23 paintGreenCircles(painter, dot); 24 25 SSquare square = new SSquare(200); 26 paintWhiteSquare(painter, square); 27 } 28 29 //REQUIRED INFRASTRUCTURE 30 31 public KanizaSquare() { 32 paintTheImage(); 33 } 34 35 public static void main(String[] args) { 36 SwingUtilities.invokeLater(new Runnable() { 37 public void run() { 38 new KanizaSquare(); 39 } 40 }); 41 } 42 43 //create the "sub-methods" to create the circles and square while keeping invariant 44 45 private void paintBlueCircle(SPainter painter, SCircle dot) { 46 painter.setColor(Color.BLUE); 47 painter.mfd(100.0); 48 painter.mlt(100.0); 49 painter.paint(dot); 50 painter.moveToCenter(); 51 52 } 53 54 private void paintRedCircle(SPainter painter, SCircle dot) { 55 painter.setColor(Color.RED); 56 painter.mbk(100.0); 57 painter.mrt(100.0); 58 painter.paint(dot); 59 painter.moveToCenter(); 60 61 } 62 63 private void paintGreenCircles(SPainter painter, SCircle dot) { 64 painter.setColor(Color.GREEN); 65 painter.mfd(100.0); 66 painter.mrt(100.0); 67 painter.paint(dot); 68 painter.mbk(200.0); 69 painter.mlt(200.0); 70 painter.paint(dot); 71 painter.moveToCenter(); 72 73 } 74 75 private void paintWhiteSquare(SPainter painter, SSquare square) { 76 painter.setColor(Color.WHITE); 77 painter.paint(square); 78 79 } 80 } 81