AlternateBalloons.java
1    package npw;
2    
3    import painter.SPainter;
4    import shapes.SCircle;
5    import shapes.SSquare;
6    
7    import javax.swing.*;
8    import java.awt.*;
9    import java.util.Random;
10   
11   public class AlternateBalloons {
12   
13   /* 
14    * Program that paints 300 random-colored balloons in the blue sky. 
15    * It will feature commands. 
16    */
17   
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 nrOfAlternateBalloons = 300;
39           paintAlternateBalloons(painter, nrOfAlternateBalloons); // 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 paintAlternateBalloons(SPainter painter, int nrOfAlternateBalloons) {
49           int i = 1;
50           while ( i <= nrOfAlternateBalloons ) {
51               paintOneAlternateBalloon(painter); // ask Intellij to generate the stub
52               i = i + 1;
53           }
54       }
55   
56       private void paintOneAlternateBalloon(SPainter painter) {
57           Random rgen = new Random();
58           int rn = rgen.nextInt(6);
59           if ( rn == 0 ) {
60               painter.setColor(randomColor());
61           } else if ( rn == 1 ) {
62               painter.setColor(randomColor());
63           } else if ( rn == 2 ) {
64               painter.setColor(randomColor());
65           } else if ( rn == 3 ) {
66               painter.setColor(randomColor());
67           } else if ( rn == 4 ) {
68               painter.setColor(randomColor());
69           } else if ( rn == 5 ) {
70               painter.setColor(randomColor());
71           }
72   
73           painter.move();
74           int AlternateBalloonRadius = 30;
75           SCircle AlternateBalloon = new SCircle(AlternateBalloonRadius);
76           painter.paint(AlternateBalloon);
77           painter.setColor(Color.BLACK);
78           painter.draw(AlternateBalloon);
79       }
80       private static Color randomColor() {
81           int rv = (int)(Math.random()*256);
82           int gv = (int)(Math.random()*256);
83           int bv = (int)(Math.random()*256);
84           return new Color(rv,gv,bv);
85       }
86   }