Les écouteurs en Java
• Ce sont des instances de classes implémentant
les interfaces XListener :
– Les évènements bas niveau (souris, clavier)
Ex : MouseListener, MouseMotionListener,
MouseWheelListener, KeyListener
– Les évènements haut niveau (bouton logiciel enclenché,
case à cocher sélectionnée..)
Ex : ActionListener, ItemListener…
• …que l’on attache à des composants graphiques :
composant.addMouseListener(ecouteur)
Remarque : Avec Glut, nous n’avions que les événements de bas niveau
Les écouteurs bas niveau
• MouseListener
– Press : appui d’un bouton
– Release : relâchement d’un bouton
– Click : appui+relâchement d’un même bouton
– Enter : entrée du curseur dans un composant graphique
– Leave : sortie du curseur d’un composant graphique
• MouseMotionListener
– Move : mouvement de souris sans bouton appuyé
– Drag : mouvement de souris avec bouton appuyé
• MouseWheelListener
– Wheel : roulement de la roulette de la souris
• KeyListener
– Press : appui sur une touche de clavier
– Release : relâchement d’une touche de clavier
– Type : caractère tapé
Exemple simple
class MyListener implements MouseListener {
public void mouseClicked(MouseEvent evt) {
System.out.println("clic en ("+evt.getX()+","+evt.getY()+")");
}
public void mousePressed(MouseEvent evt) { }
public void mouseReleased(MouseEvent evt) { }
public void mouseEntered(MouseEvent evt) { }
public void mouseLeaved(MouseEvent evt) { }
}
public class Application {
public static void main(String[] args) {
JFrame frame = new JFrame("Example");
JPanel panel = new JPanel();
panel.setPreferredSize(new Dimension(400, 400));
panel.addMouseListener(new MyListener());
frame.getContentPane().setLayout(new BorderLayout());
frame.getContentPane().add(panel, BorderLayout.CENTER);
frame.pack();
frame.setVisible(true);
}
}
Exemple simple
On peut éviter
d’écrire ces
lignes
class MyListener implements MouseListener {
public void mouseClicked(MouseEvent evt) {
System.out.println("clic en ("+evt.getX()+","+evt.getY()+")");
}
public void mousePressed(MouseEvent evt) { }
public void mouseReleased(MouseEvent evt) { }
public void mouseEntered(MouseEvent evt) { }
public void mouseLeaved(MouseEvent evt) { }
}
public class Application {
public static void main(String[] args) {
JFrame frame = new JFrame("Example");
JPanel panel = new JPanel();
panel.setPreferredSize(new Dimension(400, 400));
panel.addMouseListener(new MyListener());
frame.getContentPane().setLayout(new BorderLayout());
frame.getContentPane().add(panel, BorderLayout.CENTER);
frame.pack();
frame.setVisible(true);
}
}