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 :

Repérer un évènement de la souris sur une zone de dessin


Sujet :

2D Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 106
    Par défaut Repérer un évènement de la souris sur une zone de dessin
    Bonjour à tous,

    Je me pose une petite question à propos des évènements liés à la souris.

    Tout d'abord, j'ai une classe Ovale qui hérite de JPanel, et possède une méthode paintComponent :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    protected void paintComponent(Graphics g)
    {
          g.setColor(couleur);
     
          if (plein)
              g.fillOval(0, 0, largeur, hauteur);
          else
              g.drawOval(0, 0, largeur, hauteur);
     
          setLocation(xRef, yRef);
    }
    J'aimerais savoir si on peut, dans un mouseMoved par exemple, déterminer si le curseur de la souris est sur la figure dessinée, et non pas seulement sur le JPanel.

    Voici un exemple :

    * Sur ce schéma j'ai représenté le contentPane de la JFrame en vert
    * En jaune c'est mon objet Ovale, c'est-à-dire un JPanel
    * En rouge c'est la figure dessinée par la méthode paintComponent

    J'aimerais donc savor quand le curseur est dans la zone rouge (et seulement dans la zone rouge !).

    Voici le code actuel du listener :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Ovale o = new Ovale(100, 100, 50, 50, Color.RED, true);
    o.addMouseMotionListener(new MouseMotionListener()
        {
            public void mouseDragged(MouseEvent e) { }
     
            public void mouseMoved(MouseEvent e)
            {
                System.out.println("Moved on rouge : " + e.getX() + ":" + e.getY());
            }
        });
     
    [...]
    Merci

  2. #2
    Membre averti
    Inscrit en
    Mars 2008
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 27
    Par défaut
    En récupérant les bounds de ta figure dessinées tu devrais pouvoir déterminer si le pont est dans le rectangle.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 106
    Par défaut
    getounds() me retourne un objet de type Rectangle, donc apparamment pour un ovale ça ne me sert à rien

    Mais même, je ne vois pas comment ça aurait pu marcher parce qu'il aurait fallu que je fasse le getBounds sur la forme dessinée. Or elle est dessinée dans la méthode paintComponent qui prend en paramètre un objet de type Graphics. Mais une fois sorti de paintComponent je n'ai plus accès à cet objet.

  4. #4
    Membre Expert
    Avatar de slim_java
    Homme Profil pro
    Enseignant
    Inscrit en
    Septembre 2008
    Messages
    2 272
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2008
    Messages : 2 272
    Par défaut
    tu peux utiliser la classe Area et la méthode contains

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 106
    Par défaut
    Merci je regarderai de ce côté là

Discussions similaires

  1. accorder une action lors du passage de la souris sur une zone de l'image
    Par kawther dans le forum Interfaces Graphiques
    Réponses: 4
    Dernier message: 29/09/2010, 20h19
  2. changer d'image au survol de la souris sur une zone
    Par ced-46 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 31/12/2009, 14h50
  3. Coordonnées de la souris sur une image
    Par renaud26 dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 16/03/2006, 21h11
  4. Réponses: 2
    Dernier message: 28/07/2005, 03h59
  5. coordonnées d'un clic souris sur une image
    Par marcuswgs84 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 18/01/2005, 19h08

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