// ATM Simulation - appletATM Simulation - applet
/*
* Example ATM simulation - file ATMApplet.java
*
* This file contains the main program for the ATM simulation - applet version
*
* Copyright (c) 1997 - Russell C. Bjork
*
*/
import java.applet.Applet;
import java.awt.*;
import atm.ATM;
import atm.Bank;
import atm.util.Money;
public class ATMApplet extends Applet implements Runnable
{
// Applet initialization.
// Create the ATM and simulated bank, plus the GUI - using this as its
// container, plus a thread to run the simulation (which executes the run()
// method of this class.)
public void init()
{
_theBank = new Bank();
_theATM = new ATM(ATM_NUMBER, ATM_LOCATION, _theBank, this);
// If we are running in a frame we can get to, then set its title bar
// to our title
Component c = this;
while (c.getParent() != null) c = c.getParent();
if (c instanceof Frame)
{ ((Frame) c).setTitle("ATM number " + ATM_NUMBER + " at " + ATM_LOCATION);
((Frame) c).setResizable(false);
}
_theThread = new Thread(this);
_theThread.start();
}
// stop() and start() are called as the applet is scrolled on and off the
// screen. Simply suspend and resume the thread.
public void start()
{ _theThread.resume();
}
public void stop()
{ _theThread.suspend();
}
// This method is run by the thread. Since there is no provision for an
// applet to terminate itself, we let the operator turn the machine on and
// off as often as desired.
public void run()
{
while (true)
{ Money initialCash = _theATM.startupOperation();
_theATM.serviceCustomers(initialCash);
}
}
private Bank _theBank;
private ATM _theATM;
private Thread _theThread;
// Private constants
private static final int ATM_NUMBER = 42;
private static final String ATM_LOCATION = "GORDON COLLEGE";
}
//