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