public class BouncingBall3
1: import java.awt.*;
2: import java.awt.event.*;
3: import javax.swing.*;
4:
5: public class BouncingBall3
6: extends java.applet.Applet {
7: public BouncingBall3() {
8: setLayout(new BorderLayout());
9: canvas = new BouncingBallCanvas();
10: add("Center", canvas);
11: animator = new Animator(canvas);
12: Dimension d;
13:
14: controlPanel = new JPanel();
15: controlPanel.setLayout(new GridLayout(1,0));
16: JButton startButton = new JButton("start");
17: controlPanel.add(startButton);
18: JButton stopButton = new JButton("stop");
19: controlPanel.add(stopButton);
20: JComboBox choice = new JComboBox();
21: choice.addItem("red");
22: choice.addItem("green");
23: choice.addItem("blue");
24: controlPanel.add(choice);
25: add("South", controlPanel);
26:
27: startButton.addActionListener(new ButtonHandler(ButtonHandler.START_ANIMATION));
28: stopButton.addActionListener(new ButtonHandler(ButtonHandler.STOP_ANIMATION));
29: choice.addItemListener(new ColorChoiceHandler());
30:
31: }
32:
33: public void init() {
34: String att = getParameter("delay");
35: if (att != null) {
36: int delay = Integer.parseInt(att);
37: animator.setDelay(delay);
38: }
39: canvas.initCanvas();
40: }
41:
42: public void start() {
43: animator.start();
44: }
45:
46: public void stop() {
47: animator.stop();
48: }
49:
50: protected BouncingBallCanvas canvas;
51: protected Animator animator;
52: protected JPanel controlPanel;
53:
54: protected class ButtonHandler implements ActionListener {
55:
56: static final int START_ANIMATION = 1;
57: static final int STOP_ANIMATION = 2;
58:
59: public ButtonHandler(int cmd) {
60: this.cmd = cmd;
61: }
62:
63: public void actionPerformed(ActionEvent event) {
64: switch (cmd) {
65: case START_ANIMATION: start(); break;
66: case STOP_ANIMATION: stop(); break;
67: }
68: }
69:
70: protected int cmd;
71: }
72:
73: protected class ColorChoiceHandler implements ItemListener {
74: public void itemStateChanged(ItemEvent event) {
75: JComboBox choice = (JComboBox) event.getSource();
76: if (choice != null) {
77: if ("red".equals(event.getItem()))
78: canvas.setBallColor(Color.red);
79: else if ("green".equals(event.getItem()))
80: canvas.setBallColor(Color.green);
81: else if ("blue".equals(event.getItem()))
82: canvas.setBallColor(Color.blue);
83: canvas.repaint();
84: }
85: }
86: }
87:
88: }