1 /* This code will generate an image of 600 Balloons with radii of 30. 2 The balloons will be of six different "nameless" colors 3 */ 4 5 package npw; 6 import java.awt.Color; 7 import java.util.Random; 8 import javax.swing.SwingUtilities; 9 import painter.SPainter; 10 import shapes.SCircle; 11 import shapes.SSquare; 12 13 14 public class AlternateBalloons { 15 //REQUIRED INFRASTRUCTURE 16 public AlternateBalloons() { 17 paintTheImage(); 18 } 19 20 21 public static void main(String[] args) { 22 SwingUtilities.invokeLater(new Runnable(){ 23 public void run() { 24 new AlternateBalloons(); 25 } 26 }); 27 } 28 //THE PAINTER DOING ITS THING 29 private void paintTheImage() { 30 SPainter painter = new SPainter(" Alternate Balloons", 600, 600); 31 paintSky(painter); //ask IntelliJ to generate the stub 32 int nrOfBalloons = 300; 33 paintBalloons(painter, nrOfBalloons); // ask IntelliJ to generate the stub 34 } 35 36 37 38 39 private void paintSky(SPainter painter){ 40 painter.setColor(Color.BLUE); 41 SSquare sky = new SSquare(2000); 42 painter.paint(sky); 43 } 44 private void paintBalloons(SPainter painter, int nrOfBalloons) { 45 int i = 1; 46 while (i <= nrOfBalloons) { 47 paintOneBalloon(painter); // ask IntelliJ to generate a stub 48 i=i+1; 49 } 50 } 51 private void paintOneBalloon(SPainter painter) { 52 Random rgen = new Random(); 53 int rn = rgen.nextInt(3); 54 if(rn == 0) { 55 painter.setColor(Color.red); 56 }else if (rn == 1) { 57 painter.setColor(Color.orange); 58 } else { 59 painter.setColor(Color.yellow); 60 } 61 62 63 64 painter.move(); 65 int balloonRadius = 30; 66 SCircle balloon = new SCircle(balloonRadius); 67 painter.setColor(this.randomColor()); 68 painter.paint(balloon); 69 painter.setColor(Color.black); 70 painter.draw(balloon); 71 } 72 73 private static Color randomColor(){ 74 int rv = (int)(Math.random() * 256); 75 int gv = (int)(Math.random() * 256); 76 int bv = (int)(Math.random() * 256); 77 return new Color(rv,gv,bv); 78 } 79 } 80