1 package npw; 2 3 import painter.SPainter; 4 import shapes.SRectangle; 5 import javax.swing.*; 6 import java.awt.*; 7 import java.util.Random; 8 9 public class Invention2 { 10 11 private void paintTheImage(){ 12 //establish the painter 13 SRectangle rectangle = new SRectangle(100,150); 14 SPainter painter = new SPainter ("Invention2", 600, 600); 15 16 paintCirclesAndSquares(painter, rectangle); 17 } 18 private void paintCirclesAndSquares(SPainter painter, SRectangle rectangle) { 19 20 int i = 1; 21 while (i<=25) { 22 if (i % 2 == 0) { 23 rectangle.resetWidth((int) getRandomInteger()); 24 rectangle.resetHeight((int) getRandomInteger()); 25 painter.setColor(randomColor()); 26 painter.move(); 27 painter.paint(rectangle); 28 } 29 else { 30 painter.setColor(randomColor()); 31 painter.move(); 32 rectangle.resetWidth((int) getRandomInteger()); 33 rectangle.resetHeight((int) getRandomInteger()); 34 painter.tr(45); 35 painter.paint(rectangle); 36 } 37 i = i + 1; 38 } 39 } 40 private static Color randomColor() { 41 Random rgen = new Random(); 42 int r = rgen.nextInt(256); 43 int g = rgen.nextInt(256); 44 int b = rgen.nextInt(256); 45 return new Color(r,g,b); 46 } 47 private static double getRandomInteger(){ 48 Random random = new Random(); 49 double x = random.nextInt(200); 50 return x; 51 } 52 53 public Invention2() { 54 paintTheImage(); 55 } 56 public static void main (String[]args) { 57 SwingUtilities.invokeLater(new Runnable() { 58 public void run() { 59 new Invention2(); 60 } 61 }); 62 } 63 }