/* * Program to paint a blue dot in the context of the Nonrepresentational * Painting world, NPW. */ package npw; import java.awt.Color; import java.util.Random; import java.util.Scanner; import javax.swing.*; import painter.SPainter; import shapes.SSquare; public class Stella { //THE SOLUTION TO THE BLUE DOT PROBLEM private void paintTheImage() { int numberOfSquares = getNumber("Number of concentric squares"); SPainter painter = new SPainter("Stella", 800, 800); int squareSide = 700; SSquare square = new SSquare(squareSide); Color color1 = randomColor(); Color color2 = randomColor(); int sFactor = squareSide/(numberOfSquares+1); paintOneSquare(square,painter,numberOfSquares,color1,color2,sFactor); } private void paintOneSquare(SSquare square, SPainter painter,int numberOfSquares, Color color1, Color color2,int sFactor) { int i = 0; while (i<=numberOfSquares){ if(i%2==0){ painter.setColor(color1); painter.paint(square); square.shrink(sFactor); }else{ painter.setColor(color2); painter.paint(square); square.shrink(sFactor); } i=i+1; } } private int getNumber(String s) { String numberOfSquares = JOptionPane.showInputDialog(null,s+"?"); Scanner scanner = new Scanner(numberOfSquares); return scanner.nextInt(); } private Color randomColor() { Random rgen = new Random(); int r = rgen.nextInt(256); int g = rgen.nextInt(256); int b = rgen.nextInt(256); return new Color(r,g,b); } // REQUIRED INFRASTRUCTURE public Stella() { paintTheImage(); } public static void main(String[] args) { SwingUtilities.invokeLater(new Runnable() { public void run() { new Stella(); } }); } }