AlternateBalloons.java
1    /* Program that paints 300 nameless colored balloons in a blue sky. 
2     * It will feature commands. 
3     */
4    
5    package npw;
6    
7    import java.awt.Color;
8    import java.util.Random;
9    import painter.SPainter;
10   import shapes.SCircle;
11   import shapes.SSquare;
12   import javax.swing.*;
13   
14   public class AlternateBalloons {
15   
16       //REQUIRED INFRASTRUCTURE
17   
18       public AlternateBalloons(){
19           paintTheImage();
20       }
21   
22       public static void main(String[] args) {
23           SwingUtilities.invokeLater(new Runnable() {
24               public void run() {
25                   new AlternateBalloons();
26               }
27           });
28       }
29   
30       //THE PAINTER DOING ITS THING
31   
32       private void paintTheImage() {
33           SPainter painter = new SPainter("Balloons", 600, 600);
34           paintSky(painter); // ask IntelliJ to generate the stub
35           int nrOfBalloons = 300;
36           paintBalloons(painter,nrOfBalloons); // ask IntelliJ to generate the stub
37       }
38   
39       private void paintSky(SPainter painter) {
40           painter.setColor(Color.BLUE);
41           SSquare sky = new SSquare(2000);
42           painter.paint(sky);
43       }
44   
45       private void paintBalloons(SPainter painter, int nrOfBalloons){
46           int i = 1;
47           while( i <= nrOfBalloons) {
48               paintOneBalloon(painter); //ask IntelliJ to generate the stub
49               i = i + 1;
50   
51           }
52       }
53   
54       private void paintOneBalloon(SPainter painter) {
55           Random rgen = new Random();
56           int rn = rgen.nextInt(6);
57           if ( rn == 0) {
58               painter.setColor(new Color(210, 170, 255));
59           } else if (rn == 1) {
60               painter.setColor(new Color(253, 255, 15));
61           } else if (rn == 2){
62               painter.setColor(new Color(10, 100, 180));
63           } else if (rn == 3) {
64               painter.setColor(new Color(255, 75, 120));
65           } else if ( rn == 4) {
66               painter.setColor(new Color(52, 255, 92));
67           } else {
68               painter.setColor(new Color(85, 180, 150));
69           }
70   
71   
72           painter.move();
73           int balloonRadius = 30;
74           SCircle balloon = new SCircle(balloonRadius);
75           painter.paint(balloon);
76           painter.setColor(Color.BLACK);
77           painter.draw(balloon);
78       }
79   }
80