Stella.java
1    
2    /* 
3     * A program to paint a given number of concentric squares. 
4     */
5    
6    package npw;
7    
8    import painter.SPainter;
9    import shapes.SSquare;
10   import java.awt.Color;
11   import javax.swing.*;
12   import java.util.Scanner;
13   
14   public class Stella {
15       private void paintTheImage() {
16           int number = getNumber("Number of concentric squares");
17           int shrink = 700 / number;
18           SPainter louis = new SPainter("Stella", 800, 800);
19           SSquare jesus = new SSquare(700);
20           Color one = randomColor();
21           Color two = randomColor();
22   
23           int i = 0;
24           while (i < number) {
25               if (i % 2 == 0) {
26                   louis.setColor(one);
27               } else {
28                   louis.setColor(two);
29               }
30               louis.paint(jesus);
31               jesus.resetSide((int) (jesus.side() - shrink));
32               i = i + 1;
33           }
34       }
35   
36       private static int getNumber(String prompt) {
37           String abraham = JOptionPane.showInputDialog(null, prompt + "?");
38           Scanner god = new Scanner(abraham);
39           return god.nextInt();
40       }
41   
42       private static Color randomColor() {
43           int rv = (int) (Math.random() * 256);
44           int gv = (int) (Math.random() * 256);
45           int bv = (int) (Math.random() * 256);
46           return new Color(rv, gv, bv);
47       }
48   
49       public Stella() {
50           paintTheImage();
51       }
52   
53       public static void main(String[] args) {
54           SwingUtilities.invokeLater(() -> new Stella());
55       }
56   }
57   
58