1 4 import java.awt.*; 5 import java.awt.event.*; 6 7 public class BrusselatorController { 8 private Brusselator _brusselator; 9 private Thread _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 () { 21 public void run() { 22 while (_animationThread != null) { 23 try { 24 Thread.sleep(100); 25 } catch (InterruptedException 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 |