package test;

import java.awt.*;
import java.awt.event.*;

Observations: When the Panel gets the mousePressed(), it can receive the following mouseDrag, but the Component cannot! When both Panel and Component listen to mouse moves, only the Component gets them
public class AwtTest extends Panel implements MouseListener,MouseMotionListener { TestView testview; public AwtTest() { addMouseListener(this); add(testview = new TestView()); } public static void main(String [] args) { Frame frame = new Frame("test"); frame.add("Center",new AwtTest()); frame.pack(); frame.show(); } public void mouseReleased(MouseEvent evt) {} public void mouseEntered(MouseEvent evt) {} public void mouseExited(MouseEvent evt) {} public void mousePressed(MouseEvent evt) { System.out.println("Panel mouse pressed"); testview.click(); testview.addMouseMotionListener(this); } public void mouseClicked(MouseEvent evt) {} public void mouseMoved(MouseEvent evt) { System.out.println("Panel move"); } public void mouseDragged(MouseEvent evt) { System.out.println("Panel drag"); } } class TestView extends Component implements MouseMotionListener { public TestView() { } public Dimension getPreferredSize() { return new Dimension(200,200); } public void click() { System.out.println("Component click"); addMouseMotionListener(this); } public void mouseMoved(MouseEvent evt) { System.out.println("Component move"); } public void mouseDragged(MouseEvent evt) { System.out.println("Component drag"); } }