Balloons.java
1     /* Sep 29 by Preston Elia 
2      * Description: Program that paints 100 dots that are red, yellow and orange balloons in a blue sky. 
3      */
4     package npw;
5     import java.awt.Color;
6     import java.util.Random;
7     import javax.swing.SwingUtilities;
8     import painter.SPainter;
9     import shapes.SCircle;
10    import shapes.SSquare;
11    public class Balloons {
12        public Balloons() {
13            paintTheImage();
14        }
15   
16        public static void main(String[] args) {
17            SwingUtilities.invokeLater(new Runnable() {
18                public void run() {
19                    new Balloons();
20                }
21            });
22        }
23        private void paintTheImage() {
24            SPainter painter = new SPainter("Balloons", 600, 600);
25            paintSky(painter);
26            int nrOfBalloons = 100;
27            paintBalloons(painter, nrOfBalloons);
28        }
29        private void paintSky(SPainter painter) {
30            painter.setColor(Color.BLUE);
31            SSquare sky = new SSquare(2000);
32            painter.paint(sky);
33        }
34        private void paintBalloons(SPainter painter, int nrOfBalloons) {
35            int i = 1;
36            while (i <= nrOfBalloons) {
37                paintOneBalloon(painter);
38                i = i + 1;
39            }
40        }
41        private void paintOneBalloon(SPainter painter) {
42            Random rgen = new Random();
43            int rn = rgen.nextInt(3);
44            if (rn == 0) {
45                painter.setColor(Color.RED);
46            }else if ( rn == 1 ) {
47                painter.setColor(Color.ORANGE);
48            } else {
49                painter.setColor(Color.YELLOW);
50            }
51            painter.move();
52            int balloonRadius = 20;
53            SCircle balloon = new SCircle(balloonRadius);
54            painter.paint(balloon);
55            painter.setColor(Color.BLACK);
56            painter.draw(balloon);
57        }
58    }