Stella.java
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   }