1 package npw; 2 3 import painter.SPainter; 4 import shapes.SCircle; 5 import shapes.SSquare; 6 7 8 9 10 //program to paint a kanizsa square in the context of the nonrepresentational paint world, NPW 11 import java.awt.Color; 12 import javax.swing.SwingUtilities; 13 14 15 public class KaniszaSquare { 16 // solution to the bluedot problem 17 private void paintTheImage() { 18 SPainter painter = new SPainter("Kanisza Square",400,400); 19 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 30 private void paintWhiteSquare(SPainter painter, SSquare square) { 31 painter.setColor(Color.WHITE); 32 painter.paint(square); 33 } 34 35 private void paintGreenCircles(SPainter painter, SCircle dot) { 36 painter.setColor(Color.GREEN); 37 painter.mfd(100); 38 painter.mrt(100); 39 painter.paint(dot); 40 painter.mbk(200); 41 painter.mlt(200); 42 painter.paint(dot); 43 painter.moveToCenter(); 44 } 45 46 private void paintRedCircle(SPainter painter, SCircle dot) { 47 painter.setColor(Color.RED); 48 painter.mbk(100); 49 painter.mrt(100); 50 painter.paint(dot); 51 painter.mfd(100); 52 53 painter.mlt(100); 54 55 } 56 57 private void paintBlueCircle(SPainter painter, SCircle dot) { 58 painter.setColor(Color.BLUE); 59 painter.mfd(100); 60 painter.mlt(100); 61 painter.paint(dot); 62 painter.mrt(100); 63 painter.mbk(100); 64 } 65 66 67 68 // REQUIRED INFRASTRUCTURE 69 public KaniszaSquare() { 70 paintTheImage(); 71 } 72 public static void main(String[] args) { 73 SwingUtilities.invokeLater(new Runnable() { 74 public void run() { 75 new KaniszaSquare(); 76 } 77 }); 78 } 79 } 80 81 82 83 84 85 86 87 88 89 90 91