1 package npw; 2 3 import painter.SPainter; 4 import shapes.SCircle; 5 import shapes.SSquare; 6 7 import javax.swing.*; 8 import java.awt.*; 9 10 public class KanizsaSquare { 11 private void paintTheImage() { 12 SPainter painter = new SPainter("Kanizsa Square",400,400); 13 14 SCircle dot = new SCircle(75); 15 painter.mlt(100.0); 16 painter.mfd(100.0); 17 paintBlueCircle(painter, dot); 18 painter.mrt(200.0); 19 painter.mbk(200.0); 20 paintRedCircle(painter, dot); 21 painter.mlt(200.0); 22 paintGreenCircles(painter, dot); 23 painter.mlt(100.0); 24 painter.mbk(100.0); 25 SSquare square = new SSquare(200); 26 paintWhiteSquare(painter, square); 27 } 28 29 private void paintWhiteSquare(SPainter painter, SSquare square) { 30 painter.setColor(Color.white); 31 painter.paint(square); 32 } 33 34 private void paintGreenCircles(SPainter painter, SCircle dot) { 35 painter.setColor(Color.green); 36 painter.paint(dot); 37 painter.mrt(200.0); 38 painter.mfd(200.0); 39 painter.paint(dot); 40 } 41 42 private void paintRedCircle(SPainter painter, SCircle dot) { 43 painter.setColor(Color.RED); 44 painter.paint(dot); 45 46 } 47 48 private void paintBlueCircle(SPainter painter, SCircle dot) { 49 painter.setColor(Color.BLUE); 50 painter.paint(dot); 51 } 52 53 // REQUIRED INFRASTRUCTURE 54 55 public KanizsaSquare() { 56 paintTheImage(); 57 } 58 59 public static void main(String[] args) { 60 SwingUtilities.invokeLater(new Runnable() { 61 public void run() { 62 new npw.KanizsaSquare(); 63 } 64 }); 65 } 66 } 67 68