2
© Philippe GENOUD UJF Mai 2005
3
GUI
GUI
Dessin des segments de droite
Dessin des segments de droite
Gestion des événements souris
Déplacement de la souris sur
la zone de dessin met à jour
les coordonnées du curseur
dans la barre d’état
MOUSE_MOVED, MOUSE_DRAGGED
Appuyer sur un bouton de la
souris (
MOUSE_PRESSED
) définit
le début d ’une droite
Relacher le bouton de la
souris (
MOUSE_RELEASED
)
définit la fin de la droite
•type d ’événement MouseEvent
•source : zone de dessin
•interface d ’écoute : MouseListener
•récepteur : zone de dessin
< interface >
MouseListener
void mouseClicked(MouseEvent)
void mouseEntered(MouseEvent)
void mouseExited(MouseEvent)
void mousePressed(MouseEvent)
void mouseReleased(MouseEvent)
Comme pour la fermeture de la
fenêtre seule deux des méthodes
de l ’interface nous intéressent
© Philippe GENOUD UJF Mai 2005
4
GUI
GUI
Dessin des segments de droite
Dessin des segments de droite
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
public class ZoneDessin extends JPanel
implements MouseMotionListener {
private BarreEtat be;
public ZoneDessin(BarreEtat be) {
setBackground(Color.white);
setCursor(new Cursor(Cursor.CROSSHAIR_CURSOR));
this.be = be;
addMouseMotionListener(this);
}
public void mouseMoved(MouseEvent e) {
be.afficheCoord(e.getX(),e.getY());
}
public void mouseDragged(MouseEvent e) {
be.afficheCoord(e.getX(),e.getY());
}
} // ZoneGraphique
addMouseListener(new GestionnaireClic(this));
public void initieDroite(int x, int y) {
be.afficheMessage("Relacher pour dessiner la droite");
// on complétera ensuite
}
public void termineDroite(int x, int y) {
be.afficheMessage("Cliquer pour initier une droite");
// on complétera ensuite
}
import java.awt.event.*;
public class GestionnaireClic
extends MouseAdapter {
ZoneGraphique zone;
public GestionnaireClic(ZoneGraphique z)
{
zone = z;
}
public void mousePressed(MouseEvent e)
{
zone.initieDroite(e.getX(),e.getY());
}
public void mouseReleased(MouseEvent e)
{
zone.termineDroite(e.getX(),e.getY());
}
}
Pour ne pas avoir à définir des
méthodes inutiles possibilité
d’utiliser un adaptateur
d’événements : MouseAdapter