Invention2.java
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