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

2D Java Discussion :

Détection d'entré de la souris


Sujet :

2D Java

  1. #1
    Membre éclairé Avatar de soad
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    520
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Février 2004
    Messages : 520
    Par défaut Détection d'entré de la souris
    Hello tout le monde...

    Je cherche un moyen pour ajouter un listener sur la souris (pour détecter la souris quand elle passe une zone que j'ai dessiner dans le paintComponent())

    Est ce qu'il existe une solution simple ?

    Merci d'avance

  2. #2
    Membre Expert Avatar de guigui5931
    Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2006
    Messages
    1 667
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 667
    Par défaut
    Tu peut utiliser un MouseMotionListener sur ton JPanel. Tu detecte l'évenement mouseMoved et a partir du MouseEvent tu teste les coordonnées de la souris pour voir si elle est ou non dans ta zone

  3. #3
    Membre éclairé Avatar de Razgriz
    Profil pro
    Professeur / chercheur en informatique / mathématiques
    Inscrit en
    Avril 2006
    Messages
    391
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Professeur / chercheur en informatique / mathématiques

    Informations forums :
    Inscription : Avril 2006
    Messages : 391
    Par défaut
    Un truc plus simple ma foi est l'interface MouseListener qui définit directement une méthode mouseEntered, appellée automatiquement quand ta souris passe au dessus du composant sur lequel a été ajouté le listener.

  4. #4
    Membre Expert Avatar de guigui5931
    Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2006
    Messages
    1 667
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 667
    Par défaut
    Oui mais si c'est seulement une zone du JPanel un simple MouseListener ne suffira pas.

  5. #5
    Membre éclairé Avatar de soad
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    520
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Février 2004
    Messages : 520
    Par défaut
    Citation Envoyé par guigui5931
    Tu peut utiliser un MouseMotionListener sur ton JPanel. Tu detecte l'évenement mouseMoved et a partir du MouseEvent tu teste les coordonnées de la souris pour voir si elle est ou non dans ta zone
    Ouais c'est ce que je pensais faire mais il me semblait qu'il avait un moyen plus simple...

    Non ?

  6. #6
    Membre Expert
    Avatar de ®om
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 815
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 815
    Par défaut
    Citation Envoyé par guigui5931
    Oui mais si c'est seulement une zone du JPanel un simple MouseListener ne suffira pas.
    Dans ton JPanel, tu fais setLayout(null), et tu ajoutes un nouveau JPanel qui correspondra exactement à ta zone "cliquable", et comme ça tu n'as pas à tester si tu es dans la bonne zone

  7. #7
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    Ou sinon tu crées un objet Shape au lieu de dessiner directement sur un JPanel, cette Shape correspondant à la zone voule puis tu dessines la shape sut ton JPanel au moyen de la méthode draw ou fill de Graphics2D.

    Par la suite tu gardes ta Shape en tant qu'attribut de ta classe.
    Le point intéressant est que la classe Shape contient une méthode contains qui permet de dire si un point se trouve dans celle ci ou non.

    Donc dans le mouseListener du panel tu as juste un appel à faire ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    shape.contains (new Point2D.Float(x,y));
    et réagir en fonction du résultat renvoyé

Discussions similaires

  1. [bug] entrées sorties de souris
    Par ChipsterJulien dans le forum Langage
    Réponses: 10
    Dernier message: 27/05/2010, 21h13
  2. [Surface] Détection contact entre objets.
    Par Meph-Dev dans le forum Windows Presentation Foundation
    Réponses: 3
    Dernier message: 02/02/2010, 15h00
  3. Détection DDexterne entre 7 et XP
    Par perchman dans le forum Périphériques
    Réponses: 1
    Dernier message: 19/06/2009, 19h30
  4. Détection des coordonnées de la souris avec OpenGL
    Par choko83 dans le forum OpenGL
    Réponses: 5
    Dernier message: 17/03/2009, 10h03
  5. Détection d'un mouvement de souris
    Par romeo92 dans le forum Flash
    Réponses: 1
    Dernier message: 07/10/2008, 11h48

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