1 package npw; 2 3 import painter.SPainter; 4 import shapes.SRectangle; 5 import javax.swing.*; 6 import java.awt.Color; 7 import java.util.Random; 8 9 public class Invention2 { 10 11 public Invention2() { paintTheImage(); } 12 13 public static void main(String [] args) { 14 SwingUtilities.invokeLater(new Runnable() { 15 @Override 16 public void run() { new Invention2(); } 17 }); 18 } 19 20 public void paintTheImage() { 21 SPainter painter = new SPainter("Invention 2", 600, 600); 22 SRectangle rectangle = new SRectangle(200,100); 23 int nrOfRectangles = 50; 24 25 paintRectangles(painter, rectangle, nrOfRectangles); 26 paintOneRectangle(painter, rectangle); 27 } 28 private void paintRectangles(SPainter painter, SRectangle rectangle, int nrOfRectangles) { 29 int i = 0; 30 while (i < nrOfRectangles) { 31 painter.move(); 32 paintOneRectangle(painter, rectangle); 33 i = i + 1; 34 } 35 36 } 37 38 39 public void paintOneRectangle(SPainter painter, SRectangle rectangle) { 40 Random rgen = new Random(); 41 int rn = rgen.nextInt(4); 42 if (rn == 0) { 43 painter.setColor(randomColor()); 44 } else if (rn <= 1){ 45 painter.setHeading(30); 46 painter.setColor(randomColor()); 47 painter.paint(rectangle); 48 } else if (rn <= 2) { 49 painter.setHeading(90); 50 painter.setColor(randomColor()); 51 painter.paint(rectangle); 52 } else { 53 painter.setHeading(140); 54 painter.setColor(randomColor()); 55 painter.paint(rectangle); 56 } 57 58 } 59 60 private static Color randomColor() { 61 int rv = (int) (Math.random()*256); 62 int gv = (int) (Math.random()*256); 63 int bv = (int) (Math.random()*256); 64 return new Color( rv,gv,bv ); 65 } 66 } 67