1 package npw; 2 3 import shapes.SSquare; 4 import painter.SPainter; 5 6 import javax.swing.*; 7 import java.awt.Color; 8 import java.util.Random; 9 import java.util.Scanner; 10 11 public class Stella { 12 13 Color color1 = randomColor(); 14 Color color2 = randomColor(); 15 16 private void paintTheImage() { 17 18 int nrOfSquares = getNumber("Number of concentric squares"); 19 20 21 int side = 700; 22 23 SPainter painter = new SPainter("Stella", 800, 800); 24 SSquare largeSquare = new SSquare(side); 25 26 int i = 0; 27 int value = 1; 28 int newValue = 2; 29 int newSide = side / nrOfSquares; 30 31 while (i < nrOfSquares) { 32 if (i == value) { 33 paintFirstPattern(painter, largeSquare); 34 largeSquare.shrink(newSide); 35 i++; 36 value = value + newValue; 37 } else { 38 paintSecondPattern(painter, largeSquare); 39 largeSquare.shrink(newSide); 40 i++; 41 } 42 } 43 } 44 45 private void paintSecondPattern(SPainter painter, SSquare largeSquare) { 46 painter.setColor(color2); 47 painter.paint(largeSquare); 48 } 49 50 private void paintFirstPattern(SPainter painter, SSquare largeSquare) { 51 painter.setColor(color1); 52 painter.paint(largeSquare); 53 } 54 55 private Color randomColor() { 56 Random rgen = new Random(); 57 int r = rgen.nextInt(256); 58 int g = rgen.nextInt(256); 59 int b = rgen.nextInt(256); 60 return new Color(r, g, b); 61 } 62 63 private int getNumber(String number_of_concentric_squares) { 64 String nss = JOptionPane.showInputDialog(null, number_of_concentric_squares + "?"); 65 Scanner scanner = new Scanner(nss); 66 return scanner.nextInt(); 67 } 68 69 public Stella() { 70 paintTheImage(); 71 } 72 public static void main(String[] args) { 73 SwingUtilities.invokeLater(new Runnable() { 74 public void run() { 75 new Stella(); 76 } 77 }); 78 } 79 80 }