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