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 import java.awt.geom.Point2D; 10 11 public class KanizsaSquare { 12 private void paintTheImage() { 13 SPainter painter = new SPainter("Kanizsa Square",400,400); 14 15 SCircle dot = new SCircle(75); 16 paintBlueCircle(painter, dot); 17 paintRedCircle(painter, dot); 18 paintGreenCircles(painter, dot); 19 20 SSquare square = new SSquare(200); 21 paintWhiteSquare(painter, square); 22 } 23 24 private void paintWhiteSquare(SPainter painter, SSquare square) { 25 painter.setColor(Color.white); 26 painter.moveToCenter(); 27 painter.paint(square); 28 } 29 30 private void paintGreenCircles(SPainter painter, SCircle dot) { 31 painter.setColor(Color.green); 32 painter.moveTo(new Point2D.Double(100,300)); 33 painter.paint(dot); 34 painter.moveTo(new Point2D.Double(300,100)); 35 painter.paint(dot); 36 } 37 38 private void paintRedCircle(SPainter painter, SCircle dot) { 39 painter.setColor(Color.red); 40 painter.moveTo(new Point2D.Double(300,300)); 41 painter.paint(dot); 42 } 43 44 private void paintBlueCircle(SPainter painter, SCircle dot) { 45 painter.setColor(Color.blue); 46 painter.moveTo(new Point2D.Double(100,100)); 47 painter.paint(dot); 48 } 49 50 public KanizsaSquare() { 51 paintTheImage(); 52 } 53 54 public static void main(String[] args) { 55 SwingUtilities.invokeLater(new Runnable() { 56 public void run() { 57 new KanizsaSquare(); 58 } 59 }); 60 } 61 } 62