AlternateBalloons.java
1    
2    
3    /*lab6.3 
4     * Program that paints 300 random balloons in a blue sky. 
5     * It will feature commands. 
6     */
7    
8    package npw;
9    
10   import java.awt.Color;
11   import java.util.Random;
12   import javax.swing.SwingUtilities;
13   import painter.SPainter;
14   import shapes.SCircle;
15   import shapes.SSquare;
16   
17   public class AlternateBalloons {
18   
19       // Required Infrastructure
20   
21       public AlternateBalloons(){
22           paintTheImage();
23       }
24   
25       public static void main(String[] args){
26           SwingUtilities.invokeLater(new Runnable(){
27               public void run() {
28                   new AlternateBalloons();
29               }
30           });
31       }
32   
33       // THE PAINTER DOING ITS THING
34   
35       private void paintTheImage(){
36           SPainter painter = new SPainter("AlternateBalloons", 600, 600);
37           paintSky(painter); // ask IntelliJ to generate the stub;
38           int nrOfBalloons = 300;
39           paintBalloons(painter, nrOfBalloons); // ask IntelliJ to generate the stub
40       }
41   
42       private void paintSky(SPainter painter){
43           painter.setColor(Color.BLUE);
44           SSquare sky = new SSquare(2000);
45           painter.paint(sky);
46       }
47   
48       private void paintBalloons(SPainter painter, int nrOfBalloons){
49           int rv1 = (int)(Math.random() * 256);
50           int gv1 = (int)(Math.random() * 256);
51           int bv1 = (int)(Math.random() * 256);
52           int i = 1;
53           while (i <= nrOfBalloons){
54               paintOneBalloon(painter); // ask IntelliJ to generate the stub
55               i = i + 1;
56           }
57       }
58   
59       private void paintOneBalloon(SPainter painter){
60           Random rgen = new Random();
61           int rn = rgen.nextInt(5);
62           if (rn == 0) {
63               painter.setColor(Color1());
64           } else if (rn == 1) {
65               painter.setColor(Color2());
66           } else if (rn == 2) {
67               painter.setColor(Color3());
68           } else if (rn == 3) {
69               painter.setColor(Color4());
70           } else if (rn == 4) {
71               painter.setColor(Color5());
72           }
73           painter.move();
74           int balloonRadius = 30;
75           SCircle balloon = new SCircle(balloonRadius);
76           painter.paint(balloon);
77           painter.setColor(Color.BLACK);
78           painter.draw(balloon);
79       }
80   
81       private static Color Color1() {
82           int rv = 220; int gv = 235; int bv = 89;
83           return new Color(rv,gv,bv);
84       }
85       private static Color Color2() {
86           int rv = 161; int gv = 230; int bv = 175;
87           return new Color(rv,gv,bv);
88       }
89       private static Color Color3() {
90           int rv = 197; int gv = 205; int bv = 198;
91           return new Color(rv,gv,bv);
92       }
93       private static Color Color4() {
94           int rv = 250; int gv = 162; int bv = 33;
95           return new Color(rv,gv,bv);
96       }
97       private static Color Color5() {
98           int rv = 185; int gv = 242; int bv = 250;
99           return new Color(rv,gv,bv);
100      }
101  }