package npw; import java.awt.Color; import javax.swing.SwingUtilities; import painter.SPainter; import shapes.SCircle; import shapes.SSquare; public class KaniszaSquare { //The Solution to the blue dot problem private void paintTheImage() { SPainter painter = new SPainter("Kanizsa Square",400,400); SSquare square = new SSquare(200); SCircle dot = new SCircle(50); drawBlackSquare(painter, square); paintBlueCircles(painter, dot); paintGreenCircles(painter, dot); paintWhiteSquare(painter, square); } private void paintWhiteSquare(SPainter painter, SSquare square) { painter.setColor(Color.WHITE); painter.paint(square); } private void paintGreenCircles(SPainter painter, SCircle dot) { painter.setColor(Color.GREEN); painter.mfd(100); painter.tr(90); painter.mfd(100); painter.paint(dot); painter.moveToCenter(); painter.tl(90); painter.mbk(100); painter.tl(90); painter.mfd(100); painter.paint(dot); painter.moveToCenter(); } private void paintBlueCircles(SPainter painter, SCircle dot) { painter.setColor(Color.BLUE); painter.mfd(100); painter.tl(90); painter.mfd(100); painter.paint(dot); painter.moveToCenter(); painter.tr(90); painter.mbk(100); painter.tr(90); painter.mfd(100); painter.paint(dot); painter.moveToCenter(); painter.tl(90); } private void drawBlackSquare(SPainter painter, SSquare square) { painter.setColor(Color.BLACK); painter.tr(45); painter.draw(square); painter.tl(45); } //required infrastructure public KaniszaSquare() { paintTheImage(); } public static void main(String[] args) { SwingUtilities.invokeLater(new Runnable() { public void run() { new KaniszaSquare(); } }); } }