/home/kchan2/NetBeansProjects/CS1/src/npw/AlternateBalloons.java
  1 /*
  2  * Program that paints 300 balloons, each of radius 30, of 6 different 
  3  * "nameless" colors in a blue sky.
  4  * It will feature commands.
  5  */
  6 
  7 package npw;
  8 
  9 import java.awt.Color;
 10 import java.util.Random;
 11 import javax.swing.SwingUtilities;
 12 import painter.SPainter;
 13 import shapes.SCircle;
 14 import shapes.SSquare;
 15 
 16 /**
 17  *
 18  * @author kchan2
 19  */
 20 public class AlternateBalloons {
 21 
 22     // REQUIRED INFRASTRUCTURE
 23     
 24     public AlternateBalloons(){
 25         paintTheImage();
 26     }
 27     
 28     public static void main(String[] args) {
 29         SwingUtilities.invokeLater(new Runnable(){
 30             public void run(){
 31                 new AlternateBalloons();
 32             }
 33         });
 34     }
 35     
 36     // THE PAINTER DOING ITS THING
 37     
 38     Color color1 = randomColor();
 39     Color color2 = randomColor();
 40     Color color3 = randomColor();
 41     Color color4 = randomColor();
 42     Color color5 = randomColor();
 43     Color color6 = randomColor();
 44     
 45     private void paintTheImage(){
 46         SPainter painter = new SPainter("Balloons",600,600);
 47         paintSky(painter); // ask Netbeans to generate the stub
 48         int nrOfBalloons = 300;
 49         paintBalloons(painter,nrOfBalloons);
 50         // ask Netbeans to generate the stub
 51     }
 52 
 53     private void paintSky(SPainter painter) {
 54         painter.setColor(Color.BLUE);
 55         SSquare sky = new SSquare(2000);
 56         painter.paint(sky);
 57     }
 58 
 59     private void paintBalloons(SPainter painter, int nrOfBalloons) {
 60         int i = 1;
 61         while ( i <= nrOfBalloons ) {
 62             paintOneBalloon(painter); // ask Netbeans to generate the stub
 63             i = i + 1;
 64         }
 65     }
 66 
 67     private void paintOneBalloon(SPainter painter) {
 68         Random rgen = new Random();
 69         int rn = rgen.nextInt(6);
 70         if (rn == 0 ) {
 71             painter.setColor(color1);
 72         } else if ( rn == 1 ) {
 73             painter.setColor(color2);
 74         } else if ( rn == 2 ) {
 75             painter.setColor(color3);
 76         } else if ( rn == 3 ) {
 77             painter.setColor(color4);
 78         } else if ( rn == 4 ) {
 79             painter.setColor(color5);
 80         } else if ( rn == 5 ) {
 81             painter.setColor(color6);
 82         }
 83         painter.move();
 84         int balloonRadius = 30;
 85         SCircle balloon = new SCircle(balloonRadius);
 86         painter.paint(balloon);
 87         painter.setColor(Color.BLACK);
 88         painter.draw(balloon);
 89     }
 90 
 91     private Color randomColor() {
 92         int rv = (int)(Math.random()*256);
 93         int gv = (int)(Math.random()*256);
 94         int bv = (int)(Math.random()*256);
 95         Color color = new Color(rv,gv,bv);
 96         return color;
 97     }
 98 
 99 }
100