Stella.java
1    package npw;
2    
3    import shapes.SSquare;
4    import painter.SPainter;
5    
6    import javax.swing.*;
7    import java.awt.Color;
8    import java.util.Random;
9    import java.util.Scanner;
10   
11   public class Stella {
12   
13       Color color1 = randomColor();
14       Color color2 = randomColor();
15   
16       private void paintTheImage() {
17   
18           int nrOfSquares = getNumber("Number of concentric squares");
19   
20   
21           int side = 700;
22   
23           SPainter painter = new SPainter("Stella", 800, 800);
24           SSquare largeSquare = new SSquare(side);
25   
26           int i = 0;
27           int value = 1;
28           int newValue = 2;
29           int newSide = side / nrOfSquares;
30   
31           while (i < nrOfSquares) {
32               if (i == value) {
33                   paintFirstPattern(painter, largeSquare);
34                   largeSquare.shrink(newSide);
35                   i++;
36                   value = value + newValue;
37               } else {
38                   paintSecondPattern(painter, largeSquare);
39                   largeSquare.shrink(newSide);
40                   i++;
41               }
42           }
43       }
44   
45       private void paintSecondPattern(SPainter painter, SSquare largeSquare) {
46           painter.setColor(color2);
47           painter.paint(largeSquare);
48       }
49   
50       private void paintFirstPattern(SPainter painter, SSquare largeSquare) {
51           painter.setColor(color1);
52           painter.paint(largeSquare);
53       }
54   
55       private Color randomColor() {
56           Random rgen = new Random();
57           int r = rgen.nextInt(256);
58           int g = rgen.nextInt(256);
59           int b = rgen.nextInt(256);
60           return new Color(r, g, b);
61       }
62   
63       private int getNumber(String number_of_concentric_squares) {
64           String nss = JOptionPane.showInputDialog(null, number_of_concentric_squares + "?");
65           Scanner scanner = new Scanner(nss);
66           return scanner.nextInt();
67       }
68   
69       public Stella() {
70           paintTheImage();
71       }
72       public static void main(String[] args) {
73           SwingUtilities.invokeLater(new Runnable() {
74               public void run() {
75                   new Stella();
76               }
77           });
78       }
79   
80   }