1.1Gestion des déplacements de la souris
Dès que vous déplacez la souris, même sans cliquer sur un de ses boutons, vous provoquez
des évènements. Tout se passe comme si, à des intervalles de temps relativement réguliers, la
souris signalait sa position, ce qui peut donner naissance à deux sortes d’événements :
• entrée-sortie de composant. Java génère :
– un événement mouseEntered chaque fois que la souris passe de l’extérieur à l’intérieur
d’un composant,
– un événement mouseExited chaque fois que la souris passe de l’intérieur à l’extérieur
d’un composant ;
• déplacement sur un composant. Lorsque la souris est déplacée sur un composant donné, il
y a :
– génération d’événements mouseMoved si bien-surs aucun bouton n’est enfoncé,
– génération d’événements mouseDragged si un bouton est resté enfoncé pendant le déplacement.
import javax.swing.* ;
import java.awt.* ;
import java.awt.event.* ;
class MaFenetre extends JFrame implements MouseListener, MouseMotionListener
{ public MaFenetre ()
{ setTitle ("Traces souris") ; setSize (300, 180) ;
addMouseListener (this) ;
addMouseMotionListener (this) ;
}
public void mouseClicked (MouseEvent e)
{ details ("mouseClicked ", e) ; }
public void mousePressed (MouseEvent e)
{ details ("mousePressed ", e) ; }
public void mouseReleased (MouseEvent e)
{ details ("mouseReleased ", e) ; }
public void mouseEntered (MouseEvent e)
{ details ("mouseEntered ", e) ; }
public void mouseExited (MouseEvent e)
{ details ("mouseExited ", e) ; }
public void mouseMoved (MouseEvent e)
{ details ("mouseMoved ", e) ; }
public void mouseDragged (MouseEvent e)
{ details ("mouseDragged ", e) ; }
public static void details (String txt, MouseEvent e)
{ System.out.print (txt + e.getX() + " " + e.getY()) ;
System.out.print (" Ctr = " + e.getClickCount()) ;
System.out.print (" Boutons : ") ;
if ((e.getModifiers() & InputEvent.BUTTON1_MASK) != 0)
System.out.print ("gauche ") ;
if((e.getModifiers() & InputEvent.BUTTON2_MASK) != 0)
System.out.print ("milieu ") ;
if ((e.getModifiers() & InputEvent.BUTTON3_MASK) != 0)
System.out.print ("droite ") ;
if(e.isPopupTrigger()) System.out.print (" Popup ") ;
System.out.println () ;
}
}
public class Souris3
{ public static void main (String args[])
{ MaFenetre fen = new MaFenetre() ;
fen.setVisible(true) ;
}
}
Ce qui nous donne sa.
mouseEntered 22 160 Ctr = 0 Boutons : // entrée fenêtre
mouseMoved 22 160 Ctr = 0 Boutons : // déplacement
mouseMoved 28 168 Ctr = 0 Boutons :
mouseExited 30 178 Ctr = 0 Boutons : // sortie fenêtre
mouseEntered 5 139 Ctr = 0 Boutons : // entrée fenêtre
mouseMoved 5 139 Ctr = 0 Boutons : // déplacement
mouseMoved 11 140 Ctr = 0 Boutons :
mousePressed 11 140 Ctr = 1 Boutons : gauche // appui gauche
mouseDragged 11 141 Ctr = 0 Boutons : gauche // et glisser
mouseDragged 12 141 Ctr = 0 Boutons : gauche
mouseDragged 12 142 Ctr = 0 Boutons : gauche
mouseDragged 13 143 Ctr = 0 Boutons : gauche
mouseDragged 14 144 Ctr = 0 Boutons : gauche
mouseDragged 15 146 Ctr = 0 Boutons : gauche
mouseDragged 15 147 Ctr = 0 Boutons : gauche
mouseDragged 16 148 Ctr = 0 Boutons : gauche
mouseDragged 17 154 Ctr = 0 Boutons : gauche
mouseDragged 17 155 Ctr = 0 Boutons : gauche
mouseReleased 17 155 Ctr = 1 Boutons : gauche // relâchement gauche