AlternateBalloons.java
1    /* 
2     * Program that paints 300 colored 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   
15   
16   public class AlternateBalloons {
17   
18       Color brightRed = new Color(255, 101, 101);
19       Color purple = new Color(222, 54, 255);
20       Color teal = new Color(54, 255, 243);
21       Color redOrange = new Color(255, 94, 54);
22       Color blueGray = new Color(162, 182, 213);
23       Color honey = new Color(255, 230, 0);
24   
25       // REQUIRED INFRASTRUCTURE
26   
27       public AlternateBalloons() {
28           paintTheImage();
29       }
30   
31       public static void main(String[] args) {
32           SwingUtilities.invokeLater(new Runnable() {
33               public void run() {
34                   new AlternateBalloons();
35               }
36           });
37       }
38   
39       // THE PAINTER DOES ITS THING
40   
41       private void paintTheImage() {
42           SPainter painter = new SPainter("Alternate Balloons", 600, 600);
43           paintSky(painter); // ask IntelliJ to generate the stub
44           int nrOfBalloons = 300;
45           paintBalloons(painter, nrOfBalloons); // ask IntelliJ to generate the stub
46       }
47   
48       private void paintSky(SPainter painter) {
49           painter.setColor(Color.BLUE);
50           SSquare sky = new SSquare(2000);
51           painter.paint(sky);
52       }
53   
54       private void paintBalloons(SPainter painter, int nrOfBalloons) {
55           int i = 1;
56           while ( i <= nrOfBalloons) {
57               paintOneBalloon(painter); // ask IntelliJ to generate the stub
58               i = i + 1;
59           }
60       }
61   
62       private void paintOneBalloon(SPainter painter) {
63           Random rgen = new Random();
64           int rn = rgen.nextInt(6);
65           if ( rn == 0 ) {
66               painter.setColor(brightRed);
67           } else if ( rn == 1 ) {
68               painter.setColor(purple);
69           } else if ( rn == 2 ){
70               painter.setColor(teal);
71           } else if ( rn == 3 ){
72               painter.setColor(redOrange);
73           } else if ( rn == 4 ){
74               painter.setColor(blueGray);
75           } else {
76               painter.setColor(honey);
77           }
78           painter.move();
79           int balloonRadius = 30;
80           SCircle balloon = new SCircle(balloonRadius);
81           painter.paint(balloon);
82           painter.setColor(Color.BLACK);
83           painter.draw(balloon);
84   
85       }
86   }