AlternateBalloons.java
1    /* 
2    * This Program paints 300 balloons of 6 colors 
3     */
4    
5    package npw;
6    
7    import painter.SPainter;
8    import shapes.SCircle;
9    import shapes.SSquare;
10   
11   import javax.swing.*;
12   import java.awt.*;
13   import java.util.Random;
14   
15   public class AlternateBalloons {
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       //Painter Doing what it does
31   
32       private void paintTheImage() {
33           SPainter painter = new SPainter("Balloons", 600, 600);
34           paintSky(painter);
35           int nrOfBalloons = 300;
36           paintBalloons(painter,nrOfBalloons);
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);
49               i = i + 1;
50           }
51       }
52   
53       private void paintOneBalloon(SPainter painter) {
54           Random rgen = new Random();
55           int rn = rgen.nextInt(5);
56           if ( rn == 0 ) {
57               painter.setColor(Color.getHSBColor(23,63,123));
58           } else if ( rn == 1 ) {
59               painter.setColor(Color.getHSBColor(32,46,11));
60           } else if ( rn == 2 ) {
61               painter.setColor(Color.getHSBColor(51,1,69));
62           } else if ( rn == 3 ) {
63               painter.setColor(Color.getHSBColor(22,22,22));
64           } else if ( rn == 4 ) {
65               painter.setColor(Color.getHSBColor(12,200,75));
66           } else {
67               painter.setColor(Color.getHSBColor(77,123,211));
68           }
69           painter.move();
70           int balloonRadius = 30;
71           SCircle balloon = new SCircle(balloonRadius);
72           painter.paint(balloon);
73           painter.setColor(Color.BLACK);
74           painter.draw(balloon);
75       }
76   
77   }
78