KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > BrusselatorController


1 /*
2  * Copyright 2003, Franz-Josef Elmer, All rights reserved
3  */

4 import java.awt.*;
5 import java.awt.event.*;
6
7 public class BrusselatorController {
8   private Brusselator _brusselator;
9   private Thread JavaDoc _animationThread;
10
11   public BrusselatorController(Brusselator brusselator) {
12     _brusselator = brusselator;
13   }
14
15   public Panel getControlPanel() {
16     Panel result = new Panel();
17     Button startButton = new Button("start");
18     startButton.addActionListener(new ActionListener() {
19           public void actionPerformed(ActionEvent event) {
20             _animationThread = new Thread JavaDoc() {
21                   public void run() {
22                     while (_animationThread != null) {
23                       try {
24                         Thread.sleep(100);
25                       } catch (InterruptedException JavaDoc e) {}
26                       _brusselator.next();
27                     }
28                   }
29                 };
30             _animationThread.start();
31           }
32         });
33     result.add(startButton);
34     Button stopButton = new Button("stop");
35     stopButton.addActionListener(new ActionListener() {
36           public void actionPerformed(ActionEvent event) {
37             _animationThread = null;
38           }
39         });
40     result.add(stopButton);
41     Button resetButton = new Button("reset");
42     resetButton.addActionListener(new ActionListener() {
43           public void actionPerformed(ActionEvent event) {
44             _brusselator.reset();
45           }
46         });
47     result.add(resetButton);
48     Button addNoiseButton = new Button("add noise");
49     addNoiseButton.addActionListener(new ActionListener() {
50           public void actionPerformed(ActionEvent event) {
51             _brusselator.addNoise();
52           }
53         });
54     result.add(addNoiseButton);
55
56     return result;
57   }
58 }
59
Popular Tags