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