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