Balloons.java
1    /* 
2    * Program that paints 100 red , yellow and orange 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 Balloons<balloon> {
20   
21       // REQUIRED INFRASTRUCTURE
22   
23       public Balloons() {
24           paintTheImage();
25       }
26   
27       public static void main(String[] args) {
28           SwingUtilities.invokeLater(new Runnable() {
29               @Override
30               public void run() {
31                   new Balloons();
32               }
33           });
34       }
35   
36       // THE PAINTER DOING ITS THING
37   
38       private void paintTheImage() {
39           SPainter painter = new SPainter("Balloons", 600, 600);
40           paintSky(painter);
41           int nrOfBallons = 100;
42           paintBalloons(painter, nrOfBallons);
43       }
44   
45       private void paintSky(SPainter painter) {
46           painter.setColor(Color.BLUE);
47           SSquare sky = new SSquare(2000);
48           painter.paint(sky);
49       }
50   
51       private void paintBalloons(SPainter painter, int nrOfBallons) {
52           int i = 1;
53           while (i <= nrOfBallons) {
54               paintOneBalloon(painter);
55               i = i + 1;
56           }
57       }
58   
59       private void paintOneBalloon(SPainter painter) {
60           Random rgen = new Random();
61           int rn = rgen.nextInt(3);
62           if (rn == 0) {
63               painter.setColor(Color.RED);
64           } else if (rn == 1) {
65               painter.setColor(Color.orange);
66           } else {
67               painter.setColor(Color.YELLOW);
68   
69           }
70           painter.move();
71           int balloonRadius;
72   
73           {
74               balloonRadius = 20;
75           }
76   
77           SCircle balloon = new SCircle(balloonRadius);
78           painter.paint(balloon);
79           painter.setColor(Color.BLACK);
80           painter.draw(balloon);
81       }
82   
83   
84   }