AlternateBalloons.java
1    /* This code will generate an image of 600 Balloons with radii of 30. 
2    The balloons will be of six different "nameless" colors 
3     */
4    
5    package npw;
6    import java.awt.Color;
7    import java.util.Random;
8    import javax.swing.SwingUtilities;
9    import painter.SPainter;
10   import shapes.SCircle;
11   import shapes.SSquare;
12   
13   
14   public class AlternateBalloons {
15       //REQUIRED INFRASTRUCTURE
16       public AlternateBalloons() {
17           paintTheImage();
18       }
19   
20   
21       public static void main(String[] args) {
22           SwingUtilities.invokeLater(new Runnable(){
23               public void run() {
24                   new AlternateBalloons();
25               }
26           });
27       }
28       //THE PAINTER DOING ITS THING
29       private void paintTheImage() {
30           SPainter painter = new SPainter(" Alternate Balloons", 600, 600);
31           paintSky(painter); //ask IntelliJ to generate the stub
32           int nrOfBalloons = 300;
33           paintBalloons(painter, nrOfBalloons); // ask IntelliJ to generate the stub
34       }
35   
36   
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       private void paintBalloons(SPainter painter, int nrOfBalloons) {
45           int i = 1;
46           while (i <= nrOfBalloons) {
47               paintOneBalloon(painter); // ask IntelliJ to generate a stub
48               i=i+1;
49           }
50       }
51       private void paintOneBalloon(SPainter painter) {
52           Random rgen = new Random();
53           int rn = rgen.nextInt(3);
54           if(rn == 0) {
55               painter.setColor(Color.red);
56           }else if (rn == 1) {
57               painter.setColor(Color.orange);
58           } else {
59               painter.setColor(Color.yellow);
60           }
61   
62   
63   
64           painter.move();
65           int balloonRadius = 30;
66           SCircle balloon = new SCircle(balloonRadius);
67           painter.setColor(this.randomColor());
68           painter.paint(balloon);
69           painter.setColor(Color.black);
70           painter.draw(balloon);
71       }
72   
73       private static Color randomColor(){
74           int rv = (int)(Math.random() * 256);
75           int gv = (int)(Math.random() *  256);
76           int bv = (int)(Math.random() * 256);
77           return new Color(rv,gv,bv);
78       }
79   }
80