Stella.java
1    /* 
2    * A Program that makes concentric squares i.e Stella 
3     */
4    
5    package npw;
6    import painter.SPainter;
7    import shapes.SSquare;
8    import javax.swing.*;
9    import java.awt.*;
10   import java.util.Random;
11   import java.util.Scanner;
12   
13   public class Stella {
14   
15       public static void main(String[] args) {
16           SwingUtilities.invokeLater(new Runnable(){;
17               public void run() {
18                   new Stella();
19               }
20           });
21       }
22   
23       private void paintTheImage() {
24           int squareL = 700;
25           int n = getNumber("Number of concentric squares");
26           SPainter painter = new SPainter("Stella", 800, 800);
27           paintConcentricSquares(painter,n, squareL);
28       }
29   
30       private void paintConcentricSquares(SPainter painter, int nrOfSquares, int squareL) {
31           int i = squareL;
32           Color color1 = randomColor();
33           Color color2 = randomColor();
34           while (i>0){
35               painter.setColor(color1);
36               SSquare square = new SSquare(i);
37               painter.paint(square);
38               i=i-(squareL/nrOfSquares);
39               painter.setColor(color2);
40               SSquare square1 =new SSquare(i);
41               painter.paint(square1);
42               i= i-(squareL/nrOfSquares);
43               }
44           }
45   
46       private Color randomColor(){
47           Random rcgen = new Random();
48           int r = rcgen.nextInt(200);
49           int g = rcgen.nextInt(200);
50           int b = rcgen.nextInt(200);
51           return new Color(r,g,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 Stella(){
61       paintTheImage();
62       }
63   }
64