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