      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 program moves the rectangle.

      8  */

      9  public class RectangleMover

     10  {

     11     private static final int FRAME_WIDTH = 300;

     12     private static final int FRAME_HEIGHT = 400;

     13

     14     public static void main(String[] args)

     15     {

     16        JFrame frame = new JFrame();

     17

     18        frame.setSize(FRAME_WIDTH, FRAME_HEIGHT);

     19        frame.setTitle("An animated rectangle");

     20        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

     21

     22        final RectangleComponent component = new RectangleComponent();

     23        frame.add(component);

     24

     25        frame.setVisible(true);

     26

     27        class TimerListener implements ActionListener

     28        {

     29           public void actionPerformed(ActionEvent event)

     30           {

     31              component.moveBy(1, 1);

     32           }

     33        }

     34

     35        ActionListener listener = new TimerListener();

     36

     37        final int DELAY = 100; // Milliseconds between timer ticks

     38        Timer t = new Timer(DELAY, listener);

     39        t.start();

     40     }

     41  }