On mouseclick fire a rocket! There is no limit to the number of rockets you can fire.
public class RocketPaddle extends GraphicsProgram {// constantspublic static final int APPLICATION_HEIGHT = 600;private static final double BALL_SIZE = 10;private static final int PADDLE_Y = APPLICATION_HEIGHT - 50;private static final int PADDLE_WIDTH = 100;private static final int PADDLE_HEIGHT = 20;// the list of rocketsprivate ArrayList rocketList;private GRect paddle;public void run() {rocketList = new ArrayList();paddle = new GRect(0, PADDLE_Y, PADDLE_WIDTH, PADDLE_HEIGHT);paddle.setFilled(true);add(paddle);addMouseListeners();while(true) {animateRockets();pause(10);}}public void mouseMoved(MouseEvent e){double x = e.getX() - PADDLE_WIDTH/2;paddle.setLocation(x, PADDLE_Y);}public void mousePressed(MouseEvent e) {double x = e.getX();double y = PADDLE_Y;GOval r = new GOval(x, y, BALL_SIZE, BALL_SIZE);r.setFilled(true);r.setColor(Color.BLUE);// add the rocket to the screenadd(r);// add the rocket to the listrocketList.add(r);}private void animateRockets() {// loop over list backwards so that we can safely remove// from the list.for(int i = rocketList.size() - 1; i >= 0; i--) {GOval oval = rocketList.get(i);// move the rocketoval.move(0, -5);// remove the rocket?if(oval.getY() < 0) {remove(rocketList.get(i));rocketList.remove(i);}}}}