1 /* 2 * Program that paints 300 random , random and random balloons in a blue sky. 3 * It wil feature commands. 4 */ 5 6 package npw; 7 8 import java.awt.*; 9 import java.awt.Color; 10 import java.util.Random; 11 import javax.swing.*; 12 13 import painter.SPainter; 14 import shapes.SCircle; 15 import shapes.SSquare; 16 17 import static testers.SPolygonTester.paintTheImage; 18 19 public class AlternateBalloons { 20 21 // REQUIRED INFRASTRUCTURE 22 23 public AlternateBalloons() { 24 paintTheImage(); 25 } 26 27 28 public static void main(String[] args) { 29 SwingUtilities.invokeLater(new Runnable() { 30 @Override 31 public void run() { 32 new AlternateBalloons(); 33 } 34 }); 35 } 36 37 // THE PAINTER DOING ITS THING 38 39 private void paintTheImage() { 40 SPainter painter = new SPainter("AlternateBalloons", 600, 600); 41 paintSky(painter); 42 int nrOfBallons = 300; 43 paintBalloons(painter, nrOfBallons); 44 } 45 46 private void paintSky(SPainter painter) { 47 painter.setColor(Color.BLUE); 48 SSquare sky = new SSquare(2000); 49 painter.paint(sky); 50 } 51 52 private void paintBalloons(SPainter painter, int nrOfBallons) { 53 int i = 1; 54 while (i <= nrOfBallons) { 55 paintOneBalloon(painter); 56 i = i + 1; 57 } 58 } 59 60 private void paintOneBalloon(SPainter painter) { 61 Random rgen = new Random(); 62 int rn = rgen.nextInt(3); 63 if (rn == 0) { 64 painter.setColor(randomColor()); 65 } else if (rn == 1) { 66 painter.setColor(randomColor()); 67 } else { 68 painter.setColor(randomColor()); 69 70 } 71 painter.move(); 72 int balloonRadius; 73 74 { 75 balloonRadius = 30; 76 } 77 78 SCircle balloon = new SCircle(balloonRadius); 79 painter.paint(balloon); 80 painter.setColor(randomColor()); 81 painter.draw(balloon); 82 83 SCircle AlternateBallons = new SCircle(balloonRadius); 84 painter.paint(balloon); 85 painter.setColor(randomColor()); 86 painter.draw(balloon); 87 88 89 } 90 91 private static Color randomColor() { 92 int rv = (int) (Math.random() * 256); 93 int gv = (int) (Math.random() * 256); 94 int bv = (int) (Math.random() * 256); 95 return new Color(rv, gv, bv); 96 } 97 } 98