/** * IHM qui affiche les coordonnées de la souris parcourant une zone vide * @author Matthias COLIN * @version 1.0 (19/09/2007) */ // importations des packages import javax.swing.*; import java.awt.event.*; import java.awt.*; /** * classe EcouteurMouvementSouris qui écoute l'événement MOUSE_MOVED * et affiche les coordonnées de la souris dans un JLabel */ class EcouteurMouvementSouris extends MouseMotionAdapter { private JLabel jlbl_zoneAffichageCoordonnees; public EcouteurMouvementSouris(JLabel jlbl_pZoneAffichageCoordonnees) { this.jlbl_zoneAffichageCoordonnees = jlbl_pZoneAffichageCoordonnees; } public void mouseMoved(MouseEvent e) { jlbl_zoneAffichageCoordonnees.setText( "Coordonnées de la souris : (" + e.getX() + ", " + e.getY() + ")"); } } public class CoordonneesSourisIHM extends JFrame { /** * Declaration des composants de l'IHM */ JLabel jlbl_zoneAffichageCoordonnees; /** * Constructeur de la classe IHM * Initialise les composants et écouteurs d'évennements */ public CoordonneesSourisIHM() { // appel au constructeur de la classe parente JFrame super("Ecoute la souris bouger !"); // gestionnaire de placement de la fenetre principale this.setLayout(new BorderLayout()); // mise en place des composants // C1. Un zone vide à parcourir par la souris JPanel jpnl_panneauVideAssezGrand = new JPanel(); jpnl_panneauVideAssezGrand.setPreferredSize(new Dimension(400, 400)); jpnl_panneauVideAssezGrand.setBorder(BorderFactory.createLineBorder(Color.BLACK)); this.add(jpnl_panneauVideAssezGrand, BorderLayout.CENTER); // C2. Le label pour afficher les coordonnées de la souris jlbl_zoneAffichageCoordonnees = new JLabel("déplacer la souris ci-dessus"); this.add(jlbl_zoneAffichageCoordonnees, BorderLayout.SOUTH); // mise en place des ecouteurs d'evenement // sur la fenetre et ses composants // E1. écouteur sur la zone vide jpnl_panneauVideAssezGrand.addMouseMotionListener( new EcouteurMouvementSouris(jlbl_zoneAffichageCoordonnees)); // E2. un evenement particulier, la fermeture de la fenetre principale this.setDefaultCloseOperation(EXIT_ON_CLOSE); // fabrication et affichage de la fenetre this.pack(); this.setVisible(true); } /** * application principale : lance l'IHM */ public static void main(String arg[]) { // Creation et affichage de l'application graphique CoordonneesSourisIHM monIHM = new CoordonneesSourisIHM(); } }