1 package npw; 2 3 import painter.SPainter; 4 import shapes.SCircle; 5 import shapes.SSquare; 6 7 import javax.swing.*; 8 import java.awt.*; 9 import java.util.Random; 10 11 public class AlternateBalloons { 12 13 /* 14 * Program that paints 300 random-colored balloons in the blue sky. 15 * It will feature commands. 16 */ 17 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 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("AlternateBalloons", 600, 600); 37 paintSky(painter); // ask Intellij to generate the stub 38 int nrOfAlternateBalloons = 300; 39 paintAlternateBalloons(painter, nrOfAlternateBalloons); // 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 48 private void paintAlternateBalloons(SPainter painter, int nrOfAlternateBalloons) { 49 int i = 1; 50 while ( i <= nrOfAlternateBalloons ) { 51 paintOneAlternateBalloon(painter); // ask Intellij to generate the stub 52 i = i + 1; 53 } 54 } 55 56 private void paintOneAlternateBalloon(SPainter painter) { 57 Random rgen = new Random(); 58 int rn = rgen.nextInt(6); 59 if ( rn == 0 ) { 60 painter.setColor(randomColor()); 61 } else if ( rn == 1 ) { 62 painter.setColor(randomColor()); 63 } else if ( rn == 2 ) { 64 painter.setColor(randomColor()); 65 } else if ( rn == 3 ) { 66 painter.setColor(randomColor()); 67 } else if ( rn == 4 ) { 68 painter.setColor(randomColor()); 69 } else if ( rn == 5 ) { 70 painter.setColor(randomColor()); 71 } 72 73 painter.move(); 74 int AlternateBalloonRadius = 30; 75 SCircle AlternateBalloon = new SCircle(AlternateBalloonRadius); 76 painter.paint(AlternateBalloon); 77 painter.setColor(Color.BLACK); 78 painter.draw(AlternateBalloon); 79 } 80 private static Color randomColor() { 81 int rv = (int)(Math.random()*256); 82 int gv = (int)(Math.random()*256); 83 int bv = (int)(Math.random()*256); 84 return new Color(rv,gv,bv); 85 } 86 }