Stella.java
1    package npw;
2    
3    import painter.SPainter;
4    import shapes.SSquare;
5    
6    import javax.swing.*;
7    import java.awt.*;
8    import java.util.Random;
9    import java.util.Scanner;
10   
11   public class Stella {
12   
13       public Stella() {
14           paintTheImage();
15       }
16   
17       private void paintTheImage() {
18           int canvasSide = 800;
19           int nrOfSquares = getNumber("Number of squares...");
20           SPainter painter = new SPainter("Stella", canvasSide, canvasSide);
21           int squareWidth = (canvasSide - 100);
22           int i = 0;
23           double sizeChange = (canvasSide - 100) / nrOfSquares;
24           SSquare square = new SSquare(squareWidth);
25           Color randColor1 = randomColor();
26           Color randColor2 = randomColor();
27           paintSquares(i, nrOfSquares, painter, square, sizeChange, randColor1, randColor2);
28       }
29   
30       private void paintSquares(int i, int nrOfSquares, SPainter painter, SSquare square, double sizeChange, Color randColor1, Color randColor2) {
31           while (i < nrOfSquares) {
32               // paint squares with two random different colors
33               if (i % 2 != 0) {
34                   painter.setColor(randColor1);
35                   painter.paint(square);
36                   square.shrink(sizeChange);
37               } else {
38                   painter.setColor(randColor2);
39                   painter.paint(square);
40                   square.shrink(sizeChange);
41               }
42               i = i + 1;
43           }
44       }
45   
46       private Color randomColor() {
47           Random randColor = new Random();
48           int y = randColor.nextInt(150);
49           int o = randColor.nextInt(256);
50           int b = randColor.nextInt(80);
51           return new Color(y, o, b);
52       }
53   
54       private static int getNumber(String prompt) {
55           String nss = JOptionPane.showInputDialog(null, prompt + ".");
56           Scanner scanner = new Scanner(nss);
57           return scanner.nextInt();
58       }
59   
60       public static void main(String[] args) {
61           SwingUtilities.invokeLater(new Runnable() {
62               public void run() {
63                   new Stella();
64               }
65           });
66       }
67   
68   
69   }