The PlayBalloon Applet

Applet that shows how to use your own objects/classes and also how to extend them.



/* 
	Java applet to demonstrate the use of classes.
	This is the exmample from Chapter 10 of Bell & Parr
*/

import java.awt.*;
import java.applet.Applet;
import java.awt.event.*;

public class PlayBalloon extends Applet implements ActionListener {

	private Button grow, shrink, left, right;
	private ColoredBalloon myRedBalloon;
	
	public void init() {
	
		makeGui();
		
		myRedBalloon = new ColoredBalloon(255, 0, 0);
		
		
	} // init
	
	public void paint(Graphics g) {
		myRedBalloon.display(g);
	} // paint
	
	
	public void actionPerformed(ActionEvent e) {
	
		if (e.getSource() == grow)
			myRedBalloon.grow();
		if (e.getSource() == shrink)
			myRedBalloon.shrink();
		if (e.getSource() == left)
			myRedBalloon.left();
		if (e.getSource() == right)
			myRedBalloon.right();
			
		repaint();
	} // actionPerformed

	private void makeGui() {
		grow = new Button("Grow");
		add(grow);
		grow.addActionListener(this);
		
		shrink = new Button("Shrink");
		add(shrink);
		shrink.addActionListener(this);
		
		left = new Button("Left");
		add(left);
		left.addActionListener(this);
		
		right = new Button("Right");
		add(right);
		right.addActionListener(this);
		
	} // makeGui
} // PlayBaloon


//---contents of Balloon.java------

/*
	The Balloon class is defined here
	
*/

import java.awt.*;

class Balloon {

		int diameter = 10;
		 int xCoord = 20, yCoord = 50;
	
	public void display(Graphics g) {
	
		g.drawOval(xCoord, yCoord, diameter, diameter);
		
	} // display
	
	public void left() {
	
		xCoord = xCoord - 10;
	
	} // left
	
	public void right() {
	
		xCoord = xCoord + 10;
		
	} // right
	
	public void grow() {
	
		diameter = diameter + 5;
		
	} // grow
	
	public void shrink() {
	
		diameter = diameter - 5;
		
	} // shrink

} // Balloon

class ColoredBalloon extends Balloon {

	private Color color = new Color(200, 200, 200); // some default color
	
	public ColoredBalloon(int r, int g, int b) {
		color = new Color(r, g, b);
	}
	
	public void display(Graphics g) {
	
		g.setColor(color);
		g.fillOval(xCoord, yCoord, diameter, diameter);
		
	} // display
	
} // ColoredBalloon