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