Stella.java
1    package npw;
2    
3    import painter.SPainter;
4    import shapes.SSquare;
5    import java.util.Scanner;
6    import javax.swing.*;
7    import java.awt.*;
8    
9    public class Stella {
10   
11       public static void main(String[] args) {
12           SwingUtilities.invokeLater(new Runnable() {
13               public void run() {
14                   new Stella();
15               }
16           });
17       }
18   
19       public Stella() {
20           paintTheImage();
21       }
22   
23       private void paintTheImage() {
24           int nrOfSquares = getNumber("Number of Squares");
25           SPainter painter = new SPainter("Stella", 800, 800);
26           int side = 700;
27           paintTheStella(side, nrOfSquares,painter);
28       }
29   
30       private static int getNumber (String prompt) {
31           String string = JOptionPane.showInputDialog(null, prompt );
32           Scanner scanner = new Scanner(string);
33           return scanner.nextInt();
34       }
35   
36       private void paintTheStella(int side, int nrOfSquares, SPainter painter) {
37           Color color1 = randomColor();
38           Color color2 = randomColor();
39           int i = side;
40           while(i > 0) {
41               painter.setColor(color1);
42               SSquare square = new SSquare(i);
43               painter.paint(square);
44               i = i - (side/nrOfSquares);
45               painter.setColor(color2);
46               SSquare cube = new SSquare(i);
47               painter.paint(cube);
48               i = i - (side/nrOfSquares);
49           }
50       }
51   
52       private static Color randomColor() {
53           int rv = (int)(Math.random()*256);
54           int gv = (int)(Math.random()*256);
55           int bv = (int)(Math.random()*256);
56           return new Color(rv,gv,bv);
57       }
58   }
59