1 2 3 /*lab6.3 4 * Program that paints 300 random balloons in a blue sky. 5 * It will feature commands. 6 */ 7 8 package npw; 9 10 import java.awt.Color; 11 import java.util.Random; 12 import javax.swing.SwingUtilities; 13 import painter.SPainter; 14 import shapes.SCircle; 15 import shapes.SSquare; 16 17 public class AlternateBalloons { 18 19 // Required Infrastructure 20 21 public AlternateBalloons(){ 22 paintTheImage(); 23 } 24 25 public static void main(String[] args){ 26 SwingUtilities.invokeLater(new Runnable(){ 27 public void run() { 28 new AlternateBalloons(); 29 } 30 }); 31 } 32 33 // THE PAINTER DOING ITS THING 34 35 private void paintTheImage(){ 36 SPainter painter = new SPainter("AlternateBalloons", 600, 600); 37 paintSky(painter); // ask IntelliJ to generate the stub; 38 int nrOfBalloons = 300; 39 paintBalloons(painter, nrOfBalloons); // ask IntelliJ to generate the stub 40 } 41 42 private void paintSky(SPainter painter){ 43 painter.setColor(Color.BLUE); 44 SSquare sky = new SSquare(2000); 45 painter.paint(sky); 46 } 47 48 private void paintBalloons(SPainter painter, int nrOfBalloons){ 49 int rv1 = (int)(Math.random() * 256); 50 int gv1 = (int)(Math.random() * 256); 51 int bv1 = (int)(Math.random() * 256); 52 int i = 1; 53 while (i <= nrOfBalloons){ 54 paintOneBalloon(painter); // ask IntelliJ to generate the stub 55 i = i + 1; 56 } 57 } 58 59 private void paintOneBalloon(SPainter painter){ 60 Random rgen = new Random(); 61 int rn = rgen.nextInt(5); 62 if (rn == 0) { 63 painter.setColor(Color1()); 64 } else if (rn == 1) { 65 painter.setColor(Color2()); 66 } else if (rn == 2) { 67 painter.setColor(Color3()); 68 } else if (rn == 3) { 69 painter.setColor(Color4()); 70 } else if (rn == 4) { 71 painter.setColor(Color5()); 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 static Color Color1() { 82 int rv = 220; int gv = 235; int bv = 89; 83 return new Color(rv,gv,bv); 84 } 85 private static Color Color2() { 86 int rv = 161; int gv = 230; int bv = 175; 87 return new Color(rv,gv,bv); 88 } 89 private static Color Color3() { 90 int rv = 197; int gv = 205; int bv = 198; 91 return new Color(rv,gv,bv); 92 } 93 private static Color Color4() { 94 int rv = 250; int gv = 162; int bv = 33; 95 return new Color(rv,gv,bv); 96 } 97 private static Color Color5() { 98 int rv = 185; int gv = 242; int bv = 250; 99 return new Color(rv,gv,bv); 100 } 101 }