1 package npw; 2 3 import painter.SPainter; 4 import shapes.SSquare; 5 import javax.swing.*; 6 import java.awt.*; 7 import java.util.Random; 8 import java.util.Scanner; 9 10 public class Stella { 11 12 13 14 private void paintTheImage(){ 15 //establish the painter and objects 16 int numberOfSquares = getNumber("How Many Squares?"); 17 int painterSize = 800; 18 int squareSize = painterSize - 100; 19 int shrink = squareSize/numberOfSquares; 20 SSquare square = new SSquare (squareSize); 21 SPainter painter = new SPainter ("Stella", painterSize, painterSize); 22 23 paintSquares(painter, square, numberOfSquares, shrink); 24 } 25 26 private void paintSquares(SPainter painter, SSquare square, int numberOfSquares, int shrink) { 27 Color firstColor = randomColor(); 28 Color secondColor = randomColor(); 29 30 for(int i = 0; i<numberOfSquares; i++) { 31 if (i % 2 == 0) { 32 painter.setColor(firstColor); 33 painter.paint(square); 34 square.shrink(shrink); 35 } 36 else { 37 painter.setColor(secondColor); 38 painter.paint(square); 39 square.shrink(shrink); 40 } 41 } 42 } 43 44 private static Color randomColor() { 45 Random rgen = new Random(); 46 int r = rgen.nextInt(256); 47 int g = rgen.nextInt(256); 48 int b = rgen.nextInt(256); 49 return new Color(r,g,b); 50 } 51 52 private static int getNumber(String prompt) { 53 String nss = JOptionPane.showInputDialog(null,prompt+"?"); 54 Scanner scanner = new Scanner(nss); 55 return scanner.nextInt(); 56 } 57 58 public Stella() { 59 paintTheImage(); 60 } 61 public static void main (String[]args) { 62 SwingUtilities.invokeLater(new Runnable() { 63 public void run() { 64 new Stella(); 65 } 66 }); 67 } 68 }