AlternateBalloons.java
1    /* 
2     * Program that paints 300 random  , random and random balloons in a blue sky. 
3     * It wil feature commands. 
4     */
5    
6    package npw;
7    
8    import java.awt.*;
9    import java.awt.Color;
10   import java.util.Random;
11   import javax.swing.*;
12   
13   import painter.SPainter;
14   import shapes.SCircle;
15   import shapes.SSquare;
16   
17   import static testers.SPolygonTester.paintTheImage;
18   
19   public class AlternateBalloons {
20   
21       // REQUIRED INFRASTRUCTURE
22   
23       public AlternateBalloons() {
24           paintTheImage();
25       }
26   
27   
28       public static void main(String[] args) {
29           SwingUtilities.invokeLater(new Runnable() {
30               @Override
31               public void run() {
32                   new AlternateBalloons();
33               }
34           });
35       }
36   
37       // THE PAINTER DOING ITS THING
38   
39       private void paintTheImage() {
40           SPainter painter = new SPainter("AlternateBalloons", 600, 600);
41           paintSky(painter);
42           int nrOfBallons = 300;
43           paintBalloons(painter, nrOfBallons);
44       }
45   
46       private void paintSky(SPainter painter) {
47           painter.setColor(Color.BLUE);
48           SSquare sky = new SSquare(2000);
49           painter.paint(sky);
50       }
51   
52       private void paintBalloons(SPainter painter, int nrOfBallons) {
53           int i = 1;
54           while (i <= nrOfBallons) {
55               paintOneBalloon(painter);
56               i = i + 1;
57           }
58       }
59   
60       private void paintOneBalloon(SPainter painter) {
61           Random rgen = new Random();
62           int rn = rgen.nextInt(3);
63           if (rn == 0) {
64               painter.setColor(randomColor());
65           } else if (rn == 1) {
66               painter.setColor(randomColor());
67           } else {
68               painter.setColor(randomColor());
69   
70           }
71           painter.move();
72           int balloonRadius;
73   
74           {
75               balloonRadius = 30;
76           }
77   
78           SCircle balloon = new SCircle(balloonRadius);
79           painter.paint(balloon);
80           painter.setColor(randomColor());
81           painter.draw(balloon);
82   
83           SCircle AlternateBallons = new SCircle(balloonRadius);
84           painter.paint(balloon);
85           painter.setColor(randomColor());
86           painter.draw(balloon);
87   
88   
89       }
90   
91       private static Color randomColor() {
92           int rv = (int) (Math.random() * 256);
93           int gv = (int) (Math.random() * 256);
94           int bv = (int) (Math.random() * 256);
95           return new Color(rv, gv, bv);
96       }
97   }
98