AlternateBalloons.java
1    package npw;
2    
3    import painter.SPainter;
4    import shapes.SCircle;
5    import shapes.SSquare;
6    
7    import javax.swing.*;
8    import java.awt.*;
9    import java.util.Random;
10   
11   public class AlternateBalloons {
12       //required infrastructure
13   
14       public AlternateBalloons(){
15           paintTheImage();
16       }
17   
18       public static void main(String[] args) {
19           SwingUtilities.invokeLater(new Runnable() {
20               @Override
21               public void run() {
22                   new AlternateBalloons();
23               }
24           });
25       }
26   
27       //Painter doing its thing
28       private void paintTheImage(){
29           SPainter painter=new SPainter("Alternate Balloons",600,600);
30           paintSky(painter);
31           int nrOfBalloons=300;
32           paintBalloons(painter,nrOfBalloons);
33       }
34   
35       private void paintBalloons(SPainter painter, int nrOfBalloons) {
36           int i=1;
37           while(i<=nrOfBalloons){
38               paintOneBalloon(painter);
39               i=i+1;
40           }
41       }
42       private static Color randomColor() {
43           Random rgen = new Random();
44           int r = rgen.nextInt(256);
45           int g = rgen.nextInt(256);
46           int b = rgen.nextInt(256);
47           return new Color(r, b, g);
48       }
49       Color color1 = randomColor();
50       Color color2 = randomColor();
51       Color color3 = randomColor();
52       Color color4 = randomColor();
53       Color color5 = randomColor();
54       Color color6 = randomColor();
55       private void paintOneBalloon(SPainter painter) {
56           Random rgen=new Random();
57   
58   
59           int rn=rgen.nextInt(6);
60           if(rn==0){
61               painter.setColor(color1);
62           }else if(rn==1){
63               painter.setColor(color2);
64           }else if(rn==2){
65               painter.setColor(color3);
66           }else if(rn==3){
67               painter.setColor(color4);
68           }else if(rn==4){
69               painter.setColor(color5);
70           }else {
71               painter.setColor(color6);
72           }
73           painter.move();
74           int balloonRadius=30;
75           SCircle balloon=new SCircle(balloonRadius);
76           painter.paint(balloon);
77           painter.setColor(Color.BLACK);
78           painter.draw(balloon);
79       }
80   
81       private void paintSky(SPainter painter) {
82           painter.setColor(Color.BLUE);
83           SSquare sky=new SSquare(2000);
84           painter.paint(sky);
85       }
86   }