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