Balloons.java
1    package npw;
2    
3    import java.awt.Color;
4    import java.util.Random;
5    import javax.swing.SwingUtilities;
6    import painter.SPainter;
7    import shapes.SCircle;
8    import shapes.SSquare;
9    
10   public class Balloons {
11       // REQUIRED INFRASTRUCTURE
12       public Balloons() {
13           paintTheImage();
14       }
15   
16       public static void main(String[] args) {
17           SwingUtilities.invokeLater(new Runnable() {
18               public void run() {
19                   new Balloons();
20               }
21           });
22       }
23   
24       private void paintTheImage() {
25           SPainter painter = new SPainter("Balloons", 600, 600);
26           paintSky(painter);      // line 56
27           int nrOfBalloons = 100;
28           paintBalloons(painter,nrOfBalloons);    // line 31
29       }
30   
31       private void paintBalloons(SPainter painter, int nrOfBalloons) {
32           int i = 1;
33           while (i <= nrOfBalloons) {
34               paintOneBalloon(painter);
35               i = i + 1;
36           }
37       }
38   
39       private void paintOneBalloon(SPainter painter) {
40           Random rgen = new Random();
41           int rn = rgen.nextInt(3);
42           if (rn==0) {
43               painter.setColor(Color.red);
44           } else if (rn == 1) {
45               painter.setColor(Color.orange);
46           } else {
47               painter.setColor(Color.yellow);
48           }
49           painter.move();
50           int balloonRadius = 20;
51           SCircle balloon = new SCircle(balloonRadius);
52           painter.paint(balloon);
53           painter.setColor(Color.black);
54           painter.draw(balloon);
55       }
56   
57       private void paintSky(SPainter painter) {
58           painter.setColor(Color.blue);
59           SSquare sky = new SSquare(2000);
60           painter.paint(sky);
61       }
62   }
63