IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Interfaces Graphiques en Java Discussion :

Event Mouse pour récupérer position de la souris


Sujet :

Interfaces Graphiques en Java

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2012
    Messages : 20
    Points : 18
    Points
    18
    Par défaut Event Mouse pour récupérer position de la souris
    Bonjour à tous !

    Je vous explique mon problème : Je voudrais récupéré la position de la souris au clique dans mon image. J'ai trouver de la doc :
    A partir d'un composant avec MouseEvent

    En enregistrant un MouseEvent auprès de votre composant graphique, vous pouvez avoir accès à la position de la souris relativement à ce composant. Il vous suffira ensuite d'utiliser la méthode getLocationOnScreen() de Component pour calculer la position de la souris par rapport à l'écran.

    int x = (int)(mouseEvent.getPoint().getX() + monComposant.getLocationOnScreen().getX());
    int y = (int)(mouseEvent.getPoint().getY() + monComposant.getLocationOnScreen().getY());
    Vous pouvez aussi utiliser la méthode convertPointToScreen() de la classe javax.swing.SwingUtilities. Par exemple :

    MouseEvent event = ...;
    Component composant = ...;
    Point locationComposant = event.getPoint();
    Point locationEcran = SwingUtilities.convertPointToScreen(locationComposant, composant);
    Sans composant graphique

    A partir de Java 5.0 (Tiger), si vous voulez connaître la position de la souris (même en dehors d'une fenêtre) vous pouvez utiliser l'objet MouseInfo du package java.awt. Par exemple :

    PointerInfo pointer = MouseInfo.getPointerInfo();
    Point location = pointer.getLocation();
    System.out.println("La souris se trouve en "+location);
    Attention, l'instance de PointerInfo n'est pas mise à jour automatiquement. Vous devrez en récupérer une nouvelle instance à chaque fois.

    Avant Java 5.0, la seule solution possible est de passer par JNI (Java Native Interface). Vous pourrez ainsi avoir accès grâce à des langages plus proches du système aux cooordonnées de la souris à l'écran. Attention tout de même, vous risquez de perdre la portabilité de votre application.
    Mais ne vois pas comment l'implémenter.

    Voici ma classe :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    import java.awt.Graphics;
    import java.awt.Image;
    import java.awt.event.MouseEvent;
    import java.awt.event.MouseListener;
    import java.io.File;
    import java.io.IOException;
     
    import javax.imageio.ImageIO;
    import javax.swing.JPanel;
     
    public class Panneau extends JPanel implements MouseListener {
     
    	@Override
    	public void paintComponent(final Graphics g) {
     
    		try {
    			Image img = ImageIO.read(new File("image.jpg"));
    			this.setSize(1366, 768);
    			g.drawImage(img, 0, 0, null);
     
    		} catch (IOException e) {
     
    			e.printStackTrace();
    		}
     
    		addMouseListener(this);
     
    	}
     
    	@Override
    	public void mouseClicked(final MouseEvent event) {
     
    	}
    }
    merci d'avance =)

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 27
    Points : 25
    Points
    25
    Par défaut
    Ce que tu as fait te permet presque de récupérer la position de ta souris lors d'un clique sur ton JPanel.
    Si c'est ce que tu souhaitais faire il te faut modifier ta méthode mouseClicked de cette manière :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    @Override
        public void mouseClicked( MouseEvent e )
        {
              // Clique gauche de la souris
               if(e.getButton()==MouseEvent.BUTTON1)
               {
                    // Récupération de la position
                    Point position = e.getPoint();
                }
         }

Discussions similaires

  1. Récupérer la position de la souris sur une image
    Par megamario dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 04/04/2011, 13h15
  2. [Graphics View] Récupérer <<position Souris>> d'un QGraphicsScene
    Par doukha dans le forum Qt
    Réponses: 14
    Dernier message: 07/04/2010, 13h51
  3. [Mouse] Position de la souris a l'arret en 1.4.2
    Par taillooo dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 03/08/2009, 14h29
  4. [Question] Récupérer la position de la souris
    Par TanEk dans le forum Millie
    Réponses: 2
    Dernier message: 12/12/2008, 20h19
  5. Récupérer la position de la souris
    Par Falcor dans le forum Linux
    Réponses: 4
    Dernier message: 10/05/2008, 00h13

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo