Pourquoi mouseDragged-événements qui ne sont pas reçus lors de l'utilisation de MouseAdapter?

Pourquoi mouseDragged-uniquement sur les événements reçus lors de l'utilisation de MouseMotionAdapter
et non pas lors de l'utilisation de MouseAdapter ?

Java a deux adaptateur abstrait classes pour la réception de la souris-événements ;
MouseAdapter et MouseMotionAdapter.

Les deux classes ont un mouseDragged(MouseEvent e)-méthode, mais l'
l'un dans MouseAdapter ne semble pas fonctionner ; mouseDragged-événements
ne jamais obtenir avec celui-ci.

Les deux classes implémentent l' MouseMotionListener-interface
définit la mouseDragged-événement, donc je ne comprends pas pourquoi il est
ne fonctionne pas correctement sur les deux.

Voici un exemple de code qui illustre ce problème :

import java.awt.event.MouseAdapter;  
import java.awt.event.MouseEvent;  
import java.awt.event.MouseMotionAdapter;  
import javax.swing.JFrame;  

public class SwingApp extends JFrame
{
    public SwingApp()
    {   
        //No mouseDragged-event is received when using this : 
    this.addMouseListener(new mouseEventHandler()); 

    //This works correct (when uncommented, of course) :
    //this.addMouseMotionListener(new mouseMovedEventHandler());


    setBounds(400,200, 550,300);
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    setResizable(false);
    setVisible(true);
    }   

  public static void main(String args[])
  {
    new SwingApp();
  }

  class mouseEventHandler extends MouseAdapter
  {         
    @Override
    public void mouseDragged(MouseEvent e) //Why is this method never called ?
    {
        System.out.println(String.format("MouseDragged via MouseAdapter /X,Y : %s,%s ", e.getX(), e.getY()));
    }
  } 

  class mouseMovedEventHandler extends MouseMotionAdapter
  {           
    @Override
    public void mouseDragged(MouseEvent e)
    {
        System.out.println(String.format("MouseDragged via MouseMotionAdapter /X,Y : %s,%s ", e.getX(), e.getY()));
    }
  } 

}

OriginalL'auteur Tim | 2011-04-07