01: import java.awt.*;
02: import java.awt.event.*;
03: import java.awt.geom.*;
04: import javax.swing.*;
05: import java.util.*;
06:
07: /**
08: A panel that shows a scene composed of items.
09: */
10: public class CarPanel extends JPanel
11: {
12: public CarPanel()
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: });
25:
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();
34:
35: car.translate(
36: mousePoint.getX() - lastMousePoint.getX(),
37: mousePoint.getY() - lastMousePoint.getY());
38: repaint();
39: }
40: });
41: }
42:
43: public void paintComponent(Graphics g)
44: {
45: super.paintComponent(g);
46: Graphics2D g2 = (Graphics2D) g;
47: car.draw(g2);
48: }
49:
50: private CarShape car;
51: private Point mousePoint;
52: }