1 package npw; 2 3 /* 4 * Program that paints 100 red, yellow and orange balloons in a blue sky. 5 * It will feature commands. 6 */ 7 8 import java.awt.Color; 9 import java.util.Random; 10 import javax.swing.SwingUtilities; 11 import painter.SPainter; 12 import shapes.SCircle; 13 import shapes.SSquare; 14 15 public class Balloons { 16 17 //REQUIRED INFRASTRUCTURE 18 19 public Balloons() 20 { 21 paintTheImage(); 22 } 23 24 public static void main(String[] args) 25 { 26 SwingUtilities.invokeLater(new Runnable() { 27 public void run() { 28 new Balloons(); 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 43 private void paintSky(SPainter painter) { 44 painter.setColor(Color.BLUE); 45 SSquare sky = new SSquare(2000); 46 painter.paint(sky); 47 } 48 49 private void paintBalloons(SPainter painter, int nrOfBalloons) { 50 int i = 1; 51 while (i <= nrOfBalloons) 52 { 53 paintOneBalloon(painter); // ask intelliJ to generate the stub 54 i = i + 1; 55 } 56 57 } 58 59 private void paintOneBalloon(SPainter painter) { 60 Random rgen = new Random(); 61 int rn = rgen.nextInt(3); 62 if (rn == 0) 63 { 64 painter.setColor(Color.RED); 65 } 66 else if (rn == 1) 67 { 68 painter.setColor(Color.orange); 69 } 70 else 71 { 72 painter.setColor(Color.YELLOW); 73 } 74 painter.move(); 75 int balloonRadius = 20; 76 SCircle balloon = new SCircle(balloonRadius); 77 painter.paint(balloon); 78 painter.setColor(Color.black); 79 painter.draw(balloon); 80 } 81 82 } 83