2009-11-25 6 views
4

Est-ce que mouseMotionListener va déclencher un événement une fois que la souris se déplace sur le composant, alors que mouseListener ne se déclenche que si j'appuie sur un bouton?Différence entre mouseListener et mouseMotionListener dans Java?

Donc, si je n'ai qu'un événement mousePressed, alors je n'ai pas besoin d'un mouseMotionListener? Seulement si j'avais un mouseEntered ou un mouseExited?

Répondre

5

Oui, vous avez raison. mouseMotionListener est utilisé pour effectuer des actions lorsque votre souris se déplace sur un « point chaud »

Bon exemple peut être trouvé here

Lorsque vous traitez avec mousePressed événements, il vous suffit mousePressed événements à moins que vous vouliez ajouter d'autres événements à effectuer tout en la souris est planée.

4

Ils écoutent pour différents événements:

MouseListener

mouseClicked(MouseEvent event) // Called just after the user clicks the listened-to component. 
mouseEntered(MouseEvent event) // Called just after the cursor enters the bounds of the listened-to component. 
mouseExited(MouseEvent event) // Called just after the cursor exits the bounds of the listened-to component. 
mousePressed(MouseEvent event) // Called just after the user presses a mouse button while the cursor is over the listened-to component. 
mouseReleased(MouseEvent event) // Called just after the user releases a mouse button after a mouse press over the listened-to component 

MouseMotionListener

mouseDragged(MouseEvent event) // Called in response to the user moving the mouse while holding a mouse button down. This event is fired by the component that fired the most recent mouse-pressed event, even if the cursor is no longer over that component. 
mouseMoved(MouseEvent event)  // Called in response to the user moving the mouse with no mouse buttons pressed. This event is fired by the component that's currently under the cursor. 

Ajouter les auditeurs selon quel événement vous êtes après.

Questions connexes