1 import java.awt.event.ActionEvent;
2 import java.awt.event.ActionListener;
3 import javax.swing.JFrame;
4 import javax.swing.Timer;
5
6 /**
7 This frame contains a moving rectangle.
8 */
9 public class RectangleFrame extends JFrame
10 {
11 private static final int FRAME_WIDTH = 300;
12 private static final int FRAME_HEIGHT = 400;
13
14 private RectangleComponent scene;
15
16 class TimerListener implements ActionListener
17 {
18 public void actionPerformed(ActionEvent event)
19 {
20 scene.moveRectangleBy(1, 1);
21 }
22 }
23
24 public RectangleFrame()
25 {
26 scene = new RectangleComponent();
27 add(scene);
28
29 setSize(FRAME_WIDTH, FRAME_HEIGHT);
30
31 ActionListener listener = new TimerListener();
32
33 final int DELAY = 100; // Milliseconds between timer ticks
34 Timer t = new Timer(DELAY, listener);
35 t.start();
36 }
37 }