package lorenz_v01; //import java.io.*; //import java.math.* ; import java.awt.* ; import java.awt.event.* ; import java.applet.* ; public class LorenzMain extends Applet implements ActionListener { Lorenz myLorenz ; Thread myThread ; Thread myLorenzThread ; Frame myLorenzFrame ; // This permits a stand-alone execution public static void main(String[] args) { //System.out.println("I: "+Thread.currentThread()+" LorenzMain.main() called."); Frame f = new Frame("LorenzMain"); LorenzMain aLorenzMain = new LorenzMain(); f.setSize(100, 100); f.add("Center", aLorenzMain); f.show(); // actually puts the Lorenz frame on the screen aLorenzMain.init() ; aLorenzMain.start() ; } public LorenzMain() { super(); //System.out.println("I: "+Thread.currentThread()+" LorenzMain.LorenzMain() called."); } @Override public void init() { //System.out.println("I: "+Thread.currentThread()+" LorenzMain.init() called."); // Set up the Lorenz Wheel separate Window myLorenzFrame = new Frame("Lorenz Wheel Controls"); myLorenz = new Lorenz(); myLorenzFrame.setLayout(new BorderLayout()); myLorenzFrame.add("Center", myLorenz); myLorenzFrame.setSize(400, 600); myLorenz.init() ; myLorenzFrame.show(); } @Override public void start() { // GOOD! //System.out.println("I: "+Thread.currentThread()+" Lorenz.start() called."); if ( myLorenzThread == null ) { myLorenz.repaint() ; myLorenzThread = new Thread(myLorenz); myLorenz.start() ; myLorenzThread.start() ; } else { System.out.println("W: LorenzMain.start() called when myLorenzThread is already running."); } //System.out.println("I: LorenzMain.start() Completed."); } @Override public void stop() { // GOOD! //System.out.println("I: "+Thread.currentThread()+" Lorenz.stop() called."); if ( myLorenzThread != null ) { myLorenzThread.stop() ; } myLorenz.stop() ; } @Override public void processEvent(AWTEvent e) { System.out.println("I: "+Thread.currentThread()+" Lorenz.processEvent() called. event=" + e.getID() ); if (e.getID() == Event.WINDOW_DESTROY) { System.out.println("I: "+Thread.currentThread()+" Lorenz.java: System.exit(0) called" ); stop(); System.exit(0); } } @Override public void actionPerformed(ActionEvent ev) { System.out.println("I: "+Thread.currentThread()+" Lorenz.actionPerformed() called. getActionCommand=" + ev.getActionCommand() ); } }