// RandomNumbers.java
// This applet simply prints out a series of random numbers between 0 and 1

// Written by Julian Devlin, 8/97, for the text book
// "Introduction to Probability," by Charles M. Grinstead & J. Laurie Snell

// Packages we need
import java.awt.*;
import java.applet.Applet;
import java.util.Random;


public class RandomNumbers extends Applet
{
	TextArea disp;		// Area to display random numbers
	
	Panel contp;		// Panel for user controls
	
	Label numl;			// Controls
	TextField num;
	Button go;
	
	Random randGen;		// Random number generator
	
	// Initialize applet
	public void init()
	{	
		numl = new Label("No.");			// Create controls
		num = new TextField("100", 4);
		go = new Button("Go");
		
		contp = new Panel();				// Set up control panel
		contp.add(numl);					
		contp.add(num);
		contp.add(go);
		contp.setLayout(new FlowLayout());
		
		disp = new TextArea(20, 30);		// Create display area
		
		resize(500,400);					// Set up applet
		setLayout(new FlowLayout());
		add(disp);
		add(contp);
		
		validate();
		
		randGen = new Random();			// Create random number generator
	}
	
	// Handle events
	public boolean handleEvent(Event evt)
	{
		if (evt.target instanceof Button)
		{
			if (evt.target == go && evt.id == Event.ACTION_EVENT)	
					// When button is clicked
			{
				disp.setText("");			// Reset output window
        		generate(Integer.valueOf(num.getText()).intValue());
        		return true;		// Generate correct number of random floats				
											
			}
		}
		return super.handleEvent(evt);	// Handle other events as usual
	}
	
	// Generate n random floats from 0 to 1, and print them in the disp area
    public void generate(int n)
    {
    	float randFloat;
    	for(int i = 0; i < n; i++)
    	{
    		randFloat = randGen.nextFloat();
    		disp.appendText(Float.toString(randFloat));
    		if(i%3 == 2)
    			disp.appendText("\n");
    		else
    			disp.appendText("	");
    	}
	}
	
}

