1 /* 2 * This program creates colorful concentric squares. The number of total squares is determined by user input. 3 */ 4 5 package npw; 6 7 import painter.SPainter; 8 import shapes.SSquare; 9 import javax.swing.*; 10 import java.awt.*; 11 import java.util.Random; 12 import java.util.Scanner; 13 14 public class Stella { 15 16 private void paintTheImage(){ 17 int numOfSqu = getNumber("Number of Squares?"); 18 int canvas = 800; 19 int squSide = 700; 20 int sizeFx = squSide / numOfSqu; 21 int i = 0; 22 Color color1 = randomColor(); 23 Color color2 = randomColor(); 24 25 SPainter painter = new SPainter("Stella", canvas, canvas); 26 SSquare square = new SSquare(squSide); 27 28 29 while (i < numOfSqu) { 30 if (i % 2 > 0) { 31 painter.setColor(color1); 32 painter.paint(square); 33 square.shrink(sizeFx); 34 } else { 35 painter.setColor(color2); 36 painter.paint(square); 37 square.shrink(sizeFx); 38 } 39 i++; 40 } 41 42 43 } 44 45 46 47 48 private int randomNum() { 49 Random randNum = new Random(); 50 int n = randNum.nextInt(50); 51 n += 1; 52 return n; 53 } 54 55 private static Color randomColor() { 56 Random rgen = new Random(); 57 int r = rgen.nextInt(256); 58 int g = rgen.nextInt(256); 59 int b = rgen.nextInt(256); 60 return new Color(r,g,b); 61 } 62 63 private static int getNumber(String prompt) { 64 String nss = JOptionPane.showInputDialog(null, prompt + "?"); 65 Scanner scanner = new Scanner(nss); 66 return scanner.nextInt(); 67 } 68 69 private static String getColor(String prompt) { 70 String nss = JOptionPane.showInputDialog(null, prompt + "?"); 71 Scanner scanner = new Scanner(nss); 72 return scanner.nextLine(); 73 74 } 75 public Stella() { 76 paintTheImage(); 77 } 78 79 public static void main(String[] args) { 80 SwingUtilities.invokeLater(new Runnable() { 81 public void run() { 82 new Stella(); 83 } 84 }); 85 } 86 }