Stella.java
1    package npw;
2    
3    import painter.SPainter;
4    import shapes.SCircle;
5    import shapes.SSquare;
6    
7    import javax.swing.*;
8    import java.awt.*;
9    import java.util.Random;
10   import java.util.Scanner;
11   
12   public class Stella {
13       private void paintTheImage(){
14           int NrSqr = getNumber("How many Squares?");
15           SPainter painter = new SPainter("Painter Thing", 800,800);
16           Color color1 = randomColor();
17           Color color2 = randomColor();
18           SSquare square = new SSquare(700);
19           int i = 1;
20           while ( i <= NrSqr ) {
21               painter.setColor(color1);
22               paintSquare(painter, square);
23               square = new SSquare((square.perimeter() /4) * 0.9);
24               Color temp = color1;
25               color1 = color2;
26               color2 = temp;
27               i = i + 1;
28   
29   
30           }
31   
32   
33   
34   
35   
36   
37       }
38   
39       private void paintSquare(SPainter painter, SSquare square) {
40           painter.paint(square);
41       }
42   
43       private int getNumber(String prompt) {
44           String nss = JOptionPane.showInputDialog(null, prompt + "?");
45           Scanner scanner = new Scanner(nss);
46           return scanner.nextInt();
47       }
48       private static Color randomColor() {
49           Random rgen = new Random();
50           int r = rgen.nextInt(256);
51           int g = rgen.nextInt(256);
52           int b = rgen.nextInt(256);
53           return new Color(r, g, b);
54   
55       }
56       public Stella() { paintTheImage();
57       }
58       public static void main(String[] args) {
59           SwingUtilities.invokeLater(new Runnable() {
60               public void run() {
61                   new Stella();
62               }
63           });
64       }
65   }
66   
67