Stella.java
1    package npw;
2    
3    import java.awt.Color;
4    import java.util.Random;
5    import java.util.Scanner;
6    import javax.swing.JOptionPane;
7    import javax.swing.SwingUtilities;
8    import painter.SPainter;
9    import shapes.SSquare;
10   
11   
12   public class Stella {
13       private void paintTheImage() {
14   
15           int numberOfSquares = getNumber("Number of squares");
16   
17           SPainter painter = new SPainter("Stella", 800, 800);
18           SSquare square = new SSquare(700);
19   
20           paintTheSquare(painter,square,numberOfSquares);
21       }
22   
23       private void paintTheSquare(SPainter painter, SSquare square, int numberOfSquares) {
24           int i = 1;
25           Color color1 = randomColor();
26           Color color2 = randomColor();
27           double shrinkingSize = square.side()/numberOfSquares;
28           while (i <= numberOfSquares) {
29               if (even(i)) {
30                   painter.setColor(color1);
31                   painter.paint(square);
32               } else {
33                   painter.setColor(color2);
34                   painter.paint(square);
35               }
36               i = i + 1;
37               square.shrink(shrinkingSize);
38           }
39       }
40   
41       private Color randomColor() {
42           Random rgen = new Random();
43           int r = rgen.nextInt(256);
44           int g = rgen.nextInt(256);
45           int b = rgen.nextInt(256);
46           return new Color(r,g,b);
47       }
48   
49   
50       private boolean even(int i) {
51           return (i % 2) == 0;
52       }
53   
54   
55       private int getNumber(String number_of_squares) {
56           String nss = JOptionPane.showInputDialog(null, number_of_squares + "?");
57           Scanner scanner = new Scanner(nss);
58           return scanner.nextInt();
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       public Stella() {
69           paintTheImage();
70       }
71   }
72