//------------ // 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; }