1 package npw; 2 3 import painter.SPainter; 4 import shapes.SSquare; 5 6 import javax.swing.*; 7 import java.awt.*; 8 import java.util.Random; 9 import java.util.Scanner; 10 11 public class Stella { 12 13 public Stella() { 14 paintTheImage(); 15 } 16 17 private void paintTheImage() { 18 int canvasSide = 800; 19 int nrOfSquares = getNumber("Number of squares..."); 20 SPainter painter = new SPainter("Stella", canvasSide, canvasSide); 21 int squareWidth = (canvasSide - 100); 22 int i = 0; 23 double sizeChange = (canvasSide - 100) / nrOfSquares; 24 SSquare square = new SSquare(squareWidth); 25 Color randColor1 = randomColor(); 26 Color randColor2 = randomColor(); 27 paintSquares(i, nrOfSquares, painter, square, sizeChange, randColor1, randColor2); 28 } 29 30 private void paintSquares(int i, int nrOfSquares, SPainter painter, SSquare square, double sizeChange, Color randColor1, Color randColor2) { 31 while (i < nrOfSquares) { 32 // paint squares with two random different colors 33 if (i % 2 != 0) { 34 painter.setColor(randColor1); 35 painter.paint(square); 36 square.shrink(sizeChange); 37 } else { 38 painter.setColor(randColor2); 39 painter.paint(square); 40 square.shrink(sizeChange); 41 } 42 i = i + 1; 43 } 44 } 45 46 private Color randomColor() { 47 Random randColor = new Random(); 48 int y = randColor.nextInt(150); 49 int o = randColor.nextInt(256); 50 int b = randColor.nextInt(80); 51 return new Color(y, o, 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 static void main(String[] args) { 61 SwingUtilities.invokeLater(new Runnable() { 62 public void run() { 63 new Stella(); 64 } 65 }); 66 } 67 68 69 }