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