//------------// Introduction to Programming Using Java: An Object-Oriented Approach//	Arnow/Weiss//------------import java.awt.*;import java.awt.event.*;import java.applet.*;public class LifeApplet extends Applet implements ActionListener{    public void init() {        setLayout(new BorderLayout());        lifeDisplay = new LifeDisplay();        add("Center", lifeDisplay);        Panel p = new Panel();        add("South", p);        startButton = new Button("Start");        startButton.addActionListener(this);        p.add(startButton);        startButton.setEnabled(true);        pauseButton = new Button("Pause");        pauseButton.addActionListener(this);        p.add(pauseButton);        pauseButton.setEnabled(false);        resetButton = new Button("Reset");        resetButton.addActionListener(this);        p.add(resetButton);        resetButton.setEnabled(false);        stopButton = new Button("Stop");        stopButton.addActionListener(this);        p.add(stopButton);        setBackground(new Color(255, 20, 90));        startButton.setEnabled(true);        pauseButton.setEnabled(false);        resetButton.setEnabled(false);        stopButton.setEnabled(false);        startButton = new Button("Start");        startButton.addActionListener(this);        p.add(startButton);        startButton.setEnabled(true);        pauseButton = new Button("Pause");        pauseButton.addActionListener(this);        p.add(pauseButton);        pauseButton.setEnabled(false);        resetButton = new Button("Reset");        resetButton.addActionListener(this);        p.add(resetButton);        resetButton.setEnabled(false);        stopButton = new Button("Stop");        stopButton.addActionListener(this);        p.add(stopButton);        setBackground(new Color(255, 20, 90));        startButton.setEnabled(true);        pauseButton.setEnabled(false);        resetButton.setEnabled(false);        stopButton.setEnabled(false);    }    public void actionPerformed(ActionEvent ae) {        String whichButton = ae.getActionCommand();        if (whichButton.equals("Start"))           handleStart();        else if (whichButton.equals("resume"))           handleResume();        else if (whichButton.equals("Pause"))           handlePause();        else if (whichButton.equals("Reset"))           handleReset();        else if (whichButton.equals("Stop"))           handleStop();    }    private void handleStart() {        startButton.setLabel("resume");        lifeThread = new LifeThread(lifeDisplay, 80);        lifeThread.start();        startButton.setEnabled(false);        pauseButton.setEnabled(true);        resetButton.setEnabled(true);        stopButton.setEnabled(true);    }    private void handleResume() {        lifeThread.ourResume();        startButton.setEnabled(false);        pauseButton.setEnabled(true);        resetButton.setEnabled(true);        stopButton.setEnabled(true);    }    private void handlePause() {        lifeThread.ourSuspend();        startButton.setEnabled(true);        pauseButton.setEnabled(false);        resetButton.setEnabled(true);        stopButton.setEnabled(true);    }    private void handleReset() {        lifeThread.ourStop();        handleStart();    }    private void handleStop() {        lifeThread.ourStop();        startButton.setEnabled(false);        pauseButton.setEnabled(false);        resetButton.setEnabled(false);        stopButton.setEnabled(false);    }    private LifeDisplay    lifeDisplay;    private LifeThread     lifeThread;    private Button         startButton, pauseButton,                                   resetButton, stopButton;}