Stella.java
1    //This program allows the user to input a certain amount of concentric squares for java to paint.
2    //Two random colors would be used everytime the program is run.
3    //Each random colors selected would alternate on each square. That is, taking turns for each to appear.
4    package npw;
5    
6    //Required java library to run this program
7    import painter.SPainter;
8    import shapes.SSquare;
9    import javax.swing.*;
10   import java.awt.*;
11   import java.util.Scanner;
12   
13   public class Stella {
14   
15       private void paintCanvas() {
16           int cSqrs = getNumber("How many concentric squares do you want? "); //The scanner that would ask for user input
17           int sqrSide = 700;
18           int sf = sqrSide / cSqrs;
19   
20           //creating  the square and the painter
21           SPainter canvas = new SPainter("Stella", 800, 800);
22           SSquare sqr = new SSquare(sqrSide);
23   
24           //the two random colors that would be generated and used.
25           canvas.setRandomColor();
26           Color paint1 = canvas.color;
27           canvas.setRandomColor();
28           Color paint2 = canvas.color;
29           canvas.paint(sqr);
30   
31           //below is the sub method that paints the image
32           paintStella(canvas, cSqrs, sqr,sf ,paint1,paint2);
33       }
34   
35       private static int getNumber(String s) { //The scanner that would take the user input
36           String nrOfCsqrs = JOptionPane.showInputDialog(null, s);
37           Scanner scanner = new Scanner(nrOfCsqrs);
38           return scanner.nextInt();
39       }
40   
41       private static void paintStella(SPainter canvas, int cSqrs, SSquare sqr, int sf, Color paint1, Color paint2) {
42   
43           int i = 0;
44           while (i <cSqrs/2) { //Required loop to shrink the square and paint it until the user's number is reached.
45               sqr.shrink(sf);
46               canvas.setColor(paint1);
47               canvas.paint(sqr);
48               sqr.shrink(sf);
49               canvas.setColor(paint2);
50               canvas.paint(sqr);
51               i = i + 1;
52           }
53       }
54   
55       //Required infrastructure to paint the image
56       public Stella() {paintCanvas();}
57       public static void main(String[] args) {SwingUtilities.invokeLater(new Runnable(){@Override public void run(){new Stella();}});}
58   
59   
60   }