AlternateBalloons.java
1    /* 
2     program that paints 300 balloons of six random colors in a blue sky. 
3     it will feature commands. 
4     */
5    
6    package npw;
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 AlternateBalloons {
16       public AlternateBalloons() {
17           paintTheImage();
18       }
19   
20       public static void main(String[] args) {
21           SwingUtilities.invokeLater(new Runnable() {
22               public void run() {
23                   new AlternateBalloons();
24               }
25           });
26       }
27   
28       private void paintTheImage() {
29           SPainter painter = new SPainter("Balloons", 600, 600);
30           paintSky(painter);
31           int nrOfBalloons = 300;
32           paintBalloons(painter,nrOfBalloons);
33       }
34   
35       private void paintSky(SPainter painter) {
36           painter.setColor(Color.blue);
37           SSquare sky = new SSquare(2000);
38           painter.paint(sky);
39       }
40   
41       private void paintBalloons(SPainter painter, int nrOfBalloons) {
42           int i = 1;
43           while (i<= nrOfBalloons) {
44               paintOneBalloon(painter);
45               i = i +1;
46           }
47       }
48   
49       private void paintOneBalloon(SPainter painter) {
50           Random rgen = new Random();
51           int rn = rgen.nextInt(6);
52           if (rn==0) {
53               painter.setColor(color1());
54           } else if (rn==1) {
55               painter.setColor(color2());
56           } else if (rn==2) {
57               painter.setColor(color3());
58           } else if (rn==3) {
59               painter.setColor(color4());
60           } else if (rn==4) {
61               painter.setColor(color5());
62           } else {
63               painter.setColor(color6());
64           }
65           painter.move();
66           int balloonRadius = 30;
67           SCircle balloon = new SCircle(balloonRadius);
68           painter.paint(balloon);
69           painter.setColor(Color.black);
70           painter.draw(balloon);
71   
72       }
73   
74       private static Color color1() {
75           int rv = 100;
76           int gv = 15;
77           int bv = 112;
78           return new Color(rv,gv,bv);
79       }
80   
81       private static Color color2() {
82           int rv = 200;
83           int gv = 100;
84           int bv = 8;
85           return new Color(rv,gv,bv);
86       }
87   
88       private static Color color3() {
89           int rv = 26;
90           int gv = 200;
91           int bv = 79;
92           return new Color(rv,gv,bv);
93       }
94   
95       private static Color color4() {
96           int rv = 59;
97           int gv = 49;
98           int bv = 150;
99           return new Color(rv,gv,bv);
100      }
101  
102      private static Color color5() {
103          int rv = 230;
104          int gv = 230;
105          int bv = 230;
106          return new Color(rv,gv,bv);
107      }
108  
109      private static Color color6() {
110          int rv = 250;
111          int gv = 89;
112          int bv = 200;
113          return new Color(rv,gv,bv);
114      }
115  
116  }
117