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 static void main(String[] args) {
14           SwingUtilities.invokeLater(Stella::new);
15       }
16   
17       public Stella() {
18           paintTheImage();
19       }
20   
21       private void paintTheImage() {
22           int side = 700;
23           int number = getNumber("Number of squares");
24           SPainter painter = new SPainter("Stella", 800, 800);
25           paintPicture(side, number, painter);
26       }
27   
28       private int getNumber(String prompt) {
29           String nss = JOptionPane.showInputDialog(null,prompt+"?");
30           Scanner scanner = new Scanner(nss);
31           return scanner.nextInt();
32       }
33   
34       private void paintPicture(int side, int number, SPainter painter) {
35           SSquare square = new SSquare(side);
36           int i = number;
37           Color firstColor = randomColor();
38           Color secondColor = randomColor();
39           while (i > 0) {
40               if (i % 2 == 1) {
41                   painter.setColor(firstColor);
42               } else {
43                   painter.setColor(secondColor);
44               }
45               painter.paint(square);
46               square.shrink(side/number);
47               i = i - 1;
48           }
49       }
50   
51       private Color randomColor() {
52           Random rgb = new Random();
53           int red = rgb.nextInt(256);
54           int green = rgb.nextInt(256);
55           int blue = rgb.nextInt(256);
56           return new Color(red,green,blue);
57       }
58   }
59