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 }