Listing 2. The StockData (ConcreteSubject) class:
public class StockData implements Subject
	{
	private String symbol;
	private float close;
	private float high;
	private float low;
	private long volume;
	private List<Observer> observers;

	public StockData()
		{
		observers = new ArrayList();
		}

	public String getSymbol()
		{
		return symbol;
		}

	public float getClose()
		{
		return close;
		}

	public float getHigh()
		{
		return high;
		}

	public float getLow()
		{
		return low;
		}

	public long getVolume()
		{
		return volume;
		}

	public void attach(Observer observer)
		{
		observers.add(observer);
		}

	public void detach(Observer observer)
		{
		int i = observers.indexOf(observer);
		if(i >= 0)
			observers.remove(i);
		}

	public void notifyObservers()
		{
		int n = observers.size();
		for(int i = 0;i < n;++i)
			{
			Observer observer = (Observer)observers.get(i);
			observer.update(symbol,close,high,low,volume);
			}
		}

	public void sendStockData()
		{
		notifyObservers();
		}

	public void setStockData(String symbol,float close,float high,float low,long volume)
		{
		this.symbol = symbol;
		this.close = close;
		this.high = high;
		this.low = low;
		this.volume = volume;
		sendStockData();
		}
	}

How to Add Java Applets to Your Site

New on the Java Boutique:

New Review:

Time Management Made Easy with the Quartz Enterprise Job Scheduler
Why not just use the Java timer API? This open source scheduling API boasts simplicity, ease-of-integration, a well-rounded feature set, and it's free!

New Applet:

Reverse Complement
Reverse Complement is a simple applet that converts DNA or RNA sequences into three useful formats.

Elsewhere on internet.com:

WebDeveloper Java
Lots of Java information on webdeveloper.com

WDVL Java
Thorough Java resource at the Web Developer's Virtual Library.

ScriptSearch Java
Hundreds of free Java code files to download.

jGuru: Your View of the Java Universe
Customizable portal with online training, FAQs, regular news updates, and tutorials.