Java: Evenement souris

Résolu
Bonjour,
j'aimerai savoir comment gérer les événement de la souris
par ex :-obtenir sa position
-savoir quand on fait un clic avec la souris
merci d'avance

5 réponses

  1. Modérateur
    Pour être plus clair je décompose en trois classes, mais on pourrait tout faire en une seule. À part ça je vois mal comment faire plus court ^^

    Exemple.java

    public class Exemple
    {
        public static void main(String[] args) 
        {
            new Fenetre().setVisible(true);;
        }
    }

    Fenetre.java

    import javax.swing.JFrame;
    
    public class Fenetre extends JFrame
    {
        private static final long serialVersionUID = 1;
        
        public Fenetre()
        {
            addMouseListener(new Evenement());
            setExtendedState(MAXIMIZED_BOTH);
            setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        }
    }

    Evenement.java

    import java.awt.event.MouseListener;
    import java.awt.event.MouseEvent;
    
    public class Evenement implements MouseListener
    {
        @Override
        public void mouseClicked(MouseEvent e) 
        {
            if (e.getButton()==MouseEvent.BUTTON3)
                System.out.printf("(x=%d,y=%d)",e.getX(),e.getY());
        }
    
        @Override
        public void mousePressed(MouseEvent e) {}
    
        @Override
        public void mouseReleased(MouseEvent e) {}
    
        @Override
        public void mouseEntered(MouseEvent e) {}
    
        @Override
        public void mouseExited(MouseEvent e) {}
    }
    1. Merci mais est ce que tu pourrait me mettre le minimum vital juste pour connaitre la position de la souris et savoir quand on clic =).
      Merci
      1. Modérateur
        En Java on ne clique pas sur une fenêtre, c'est la fenêtre qui est cliqué par la souris !
        La différence est peut-être subtile mais cela signifie que tu dois d'abord créer une fenêtre qui t'informera au moment où la souris agit sur la fenêtre. Ce qui signifie que si tu cliques en dehors de la fenêtre tu ne pourras plus intercepter l'action de la souris.

        Dans le petit code d'exemple que j'ai mis plus haut, c'est la fenêtre du haut qui intercepte les évènements de la souris, tu peux donc t'en inspirer au moins en partie. Quand on clic, la méthode mouseClicked est appelée avec en paramètre le MouseEvent dont on peut déduire les coordonnées grâce aux méthodes getX et getY, ou alors getXOnScreen et getYOnScreen selon ce que tu veux avoir.
      2. Est ce que tu pourrai me faire un code rapide détaille qui ouvre une fenêtre et qui affiche la position de la souris lorsque l'ont fait un clic droit