/* * program that paints 300 balloons of six random colors in a blue sky. * It will feature commands. */ package npw; import java.awt.Color; import java.util.Random; import javax.swing.SwingUtilities; import painter.SPainter; import shapes.SCircle; import shapes.SSquare; public class AlternateBalloons { public AlternateBalloons() { paintTheImage(); } public static void main(String[] args) { SwingUtilities.invokeLater(new Runnable() { public void run() { new AlternateBalloons(); } }); } private void paintTheImage() { SPainter painter = new SPainter("Balloons", 600, 600); paintSky(painter); int nrOfBalloons = 300; paintBalloons(painter,nrOfBalloons); } private void paintSky(SPainter painter) { painter.setColor(Color.blue); SSquare sky = new SSquare(2000); painter.paint(sky); } private void paintBalloons(SPainter painter, int nrOfBalloons) { int i = 1; while (i<= nrOfBalloons) { paintOneBalloon(painter); i = i +1; } } private void paintOneBalloon(SPainter painter) { Random rgen = new Random(); int rn = rgen.nextInt(6); if (rn==0) { painter.setColor(color1()); } else if (rn==1) { painter.setColor(color2()); } else if (rn==2) { painter.setColor(color3()); } else if (rn==3) { painter.setColor(color4()); } else if (rn==4) { painter.setColor(color5()); } else { painter.setColor(color6()); } painter.move(); int balloonRadius = 30; SCircle balloon = new SCircle(balloonRadius); painter.paint(balloon); painter.setColor(Color.black); painter.draw(balloon); } private static Color color1() { int rv = 200; int gv = 15; int bv = 12; return new Color(rv,gv,bv); } private static Color color2() { int rv = 220; int gv = 110; int bv = 8; return new Color(rv,gv,bv); } private static Color color3() { int rv = 26; int gv = 190; int bv = 79; return new Color(rv,gv,bv); } private static Color color4() { int rv = 59; int gv = 49; int bv = 180; return new Color(rv,gv,bv); } private static Color color5() { int rv = 170; int gv = 150; int bv = 2; return new Color(rv,gv,bv); } private static Color color6() { int rv = 240; int gv = 89; int bv = 200; return new Color(rv,gv,bv); } }