1 /* 2 Program that paints 300 orange, blue, yellow, green, purple and red balloons in a blue sky 3 Uses a color constructor to choose my own colors 4 */ 5 6 7 package npw; 8 9 import painter.SPainter; 10 import shapes.SCircle; 11 import shapes.SSquare; 12 13 import javax.swing.*; 14 import java.awt.*; 15 import java.util.Random; 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 @Override 28 public void run() { 29 new AlternateBalloons(); 30 } 31 }); 32 } 33 34 // THE PAINTER DOING ITS THING 35 36 private void paintTheImage() { 37 SPainter painter = new SPainter("Balloons", 600, 600); 38 paintSky(painter); //ask Intellij to generate the stub 39 int nrOfBalloons = 300; 40 paintBalloons(painter, nrOfBalloons); //ask Intellij to generate the stub 41 } 42 43 private void paintSky(SPainter painter) { 44 painter.setColor(Color.BLUE); 45 SSquare sky = new SSquare(2000); 46 painter.paint(sky); 47 } 48 private void paintBalloons(SPainter painter, int nrOfBallons) { 49 int i = 1; 50 while (i <= nrOfBallons) { 51 paintOneBallon(painter); //ask IntelliJ to generate the stub 52 i = i + 1; 53 } 54 } 55 56 private void paintOneBallon(SPainter painter) { 57 Random rgen = new Random(); 58 int rn = rgen.nextInt(6); 59 if (rn == 0) { 60 painter.setColor(new Color(168, 50, 162)); 61 } 62 else if (rn == 1) { 63 painter.setColor(new Color(50,168,56)); 64 } 65 else if (rn == 2) { 66 painter.setColor(new Color(23, 212, 209)); 67 } 68 else if (rn == 3) { 69 painter.setColor(new Color(212, 95, 23)); 70 } 71 else if (rn == 4) { 72 painter.setColor(new Color(212, 23, 58)); 73 } 74 else { 75 painter.setColor(new Color(209, 212, 23)); 76 } 77 painter.move(); 78 int balloonRadius = 30; 79 SCircle balloon = new SCircle(balloonRadius); 80 painter.paint(balloon); 81 painter.setColor(Color.BLACK); 82 painter.draw(balloon); 83 84 } 85 } 86