1 /* 2 Program that paints 100 red, yellow and orange balloons in a blue sky. 3 It will feature commands 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 Balloons { 18 19 //REQUIRED INFRASTRUCTURE 20 21 public Balloons() { 22 paintTheImage(); 23 } 24 public static void main (String [] args) { 25 SwingUtilities.invokeLater(new Runnable() { 26 @Override 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("Balloons", 600, 600); 37 paintSky(painter); //ask Intellij to generate the stub 38 int nrOfBalloons = 100; 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 private void paintBalloons(SPainter painter, int nrOfBallons) { 48 int i = 1; 49 while (i <= nrOfBallons) { 50 paintOneBallon(painter); //ask IntelliJ to generate the stub 51 i = i +1; 52 } 53 } 54 55 private void paintOneBallon(SPainter painter) { 56 Random rgen = new Random(); 57 int rn = rgen.nextInt(3); 58 if (rn == 0) { 59 painter.setColor(Color.RED); 60 } 61 else if (rn == 1) { 62 painter.setColor(Color.ORANGE); 63 } 64 else { 65 painter.setColor(Color.YELLOW); 66 } 67 painter.move(); 68 int ballonRadius = 20; 69 SCircle balloon = new SCircle(ballonRadius); 70 painter.paint(balloon); 71 painter.setColor(Color.BLACK); 72 painter.draw(balloon); 73 74 } 75 } 76