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