Source of CarComponent.java


  1: import java.awt.*;
  2: import java.awt.event.*;
  3: import java.awt.geom.*;
  4: import javax.swing.*;
  5: import java.util.*;

  7: /**
  8:    A component that shows a scene composed of items.
  9: */
 10: public class CarComponent extends JComponent
 11: {
 12:    public CarComponent()
 13:    {
 14:       car = new CarShape(20, 20, 50);
 15:       addMouseListener(new
 16:          MouseAdapter()
 17:          {
 18:             public void mousePressed(MouseEvent event)
 19:             {
 20:                mousePoint = event.getPoint();
 21:                if (!car.contains(mousePoint))
 22:                   mousePoint = null;
 23:             }
 24:          });

 26:       addMouseMotionListener(new
 27:          MouseMotionAdapter()
 28:          {
 29:             public void mouseDragged(MouseEvent event)
 30:             {
 31:                if (mousePoint == null) return;
 32:                Point lastMousePoint = mousePoint;
 33:                mousePoint = event.getPoint();

 35:                double dx = mousePoint.getX() - lastMousePoint.getX();
 36:                double dy = mousePoint.getY() - lastMousePoint.getY();
 37:                car.translate((int) dx, (int) dy);
 38:                repaint();
 39:             }
 40:          });
 41:    }

 43:    public void paintComponent(Graphics g)
 44:    {
 45:       Graphics2D g2 = (Graphics2D) g;
 46:       car.draw(g2);
 47:    }

 49:    private CarShape car;
 50:    private Point mousePoint;
 51: }