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 :

Erreur mouse Event


Sujet :

Interfaces Graphiques en Java

  1. #1
    Nouveau Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2015
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2015
    Messages : 5
    Points : 1
    Points
    1
    Par défaut Erreur mouse Event
    Je souhaite modifier une image lorsque la souris passe sur celle ci:

    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
            private class mouseEvent implements MouseListener, MouseMotionListener {
    
            public void mouseEntered(MouseEvent e) {
                Point point = getMousePosition();
                int X = point.x;
                int Y = point.y;
    
                if ((X > 10) && (X < 100) && (Y > 300) && (Y < 390)) {
                    try {
                        rotg = ImageIO.read(new File("Bouton rotG neg.png"));
                    } catch (IOException err) {
                        err.printStackTrace();
                    }
    
                }
    
            }
    Java m'affiche une erreur sur le mouseEvent: "mouseEvent does not override abstract method mouseExited"
    Je ne comprends pas l'erreur...

  2. #2
    Modérateur
    Avatar de wax78
    Homme Profil pro
    Chef programmeur
    Inscrit en
    Août 2006
    Messages
    4 084
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

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

    Informations forums :
    Inscription : Août 2006
    Messages : 4 084
    Points : 7 998
    Points
    7 998
    Par défaut
    C'est parce que tu n'as pas implémente toutes les méthodes requise par l'interface MouseListener et MouseMotionListener. Ce que le compilo t'indique clairement d'ailleurs.

    Aussi, evite de charger des image ou de dessiner (si tu avais cette mauvaise idée) dans les events.

  3. #3
    Nouveau Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2015
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2015
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    Merci beaucoup pour votre réponse, j'ai réussi à le faire marcher !
    Mais à chaque fois que je sors la souris de la fenêtre, mon programme cesse de fonctionner, à quoi cela est dû?

  4. #4
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Salut,

    Citation Envoyé par Imhotepinsa Voir le message
    Mais à chaque fois que je sors la souris de la fenêtre, mon programme cesse de fonctionner, à quoi cela est dû?
    Probablement à cause de ce que tu as mis comme code dans la méthode mouseExited. Quel est ce code ?

  5. #5
    Nouveau Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2015
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2015
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    J'ai rien mis dedans, ce code est vide. Que faut-il mettre?

  6. #6
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Rien, justement, s'il n'y a rien à faire. Tu peux nous montrer ton code ?

  7. #7
    Nouveau Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2015
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2015
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    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
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    public void boucle_principale_jeu(){
        	Point point = getMousePosition();
        	int X = point.x;
        	int Y = point.y;
        	for (int k=0; k<boutons.listeboutons.size(); k++) {
            	Bouton b =  boutons.listeboutons.get(k);
            	b.positive();
        	}
        	if ((X > 10) && (X < 100) && (Y > 300) && (Y < 390)) {
          	boutons.listeboutons.get(0).negative();
     
            }
        	else if ((X > 190) && (X < 280) && (Y > 300) && (Y < 390)) {
            	boutons.listeboutons.get(1).negative();
            }
     
            else if ((X > 10) && (X < 100) && (Y > 390) && (Y < 480)) {
                    boutons.listeboutons.get(2).negative();
            }
     
            else if ((X > 100) && (X < 190) && (Y > 390) && (Y < 480)) {
                    boutons.listeboutons.get(3).negative();
            }
     
            else if ((X > 190) && (X < 280) && (Y > 390) && (Y < 480)) {
                    boutons.listeboutons.get(4).negative();
            }
     
            else if ((X > 10) && (X < 100) && (Y > 480) && (Y < 570)) {
                    boutons.listeboutons.get(5).negative();
            }
     
            else if ((X > 190) && (X < 280) && (Y > 480) && (Y < 570)) {
                    boutons.listeboutons.get(6).negative();
            }
     
            else if ((X > 10) && (X < 100) && (Y > 570) && (Y < 660)) {
                    boutons.listeboutons.get(7).negative();
            }
     
            else if ((X > 100) && (X < 190) && (Y > 570) && (Y < 660)) {
                	boutons.listeboutons.get(8).negative();
            }
     
            else if ((X > 190) && (X < 280) && (Y > 570) && (Y < 660)) {
                    boutons.listeboutons.get(9).negative();
            }
     
        	repaint();
    	}
     
    	private class mouseEvent implements MouseListener, MouseMotionListener {
     
                    public void mouseClicked(MouseEvent e){
            	}
     
            	public void mouseExited(MouseEvent e) {
            	}
     
            	public void mousePressed(MouseEvent e) {
            	}
     
            	public void mouseReleased(MouseEvent e) {
            	}
     
            	public void mouseMoved(MouseEvent e) {
            	}
     
            	public void mouseDragged(MouseEvent e) {
            	}
     
            	public void mouseEntered(MouseEvent e) {
            	}
     
     
    	}

  8. #8
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Tu crées bien une classe interne mouseEvent qui est un MouseListener et MouseMotionListener, mais tu ne l'enregistres pas comme écouteur (avec addMouseListener() et addMouseMotionListener()) (elle ne fait rien ta classe et elle n'est pas utilisée) : à la place, tu utilises la méthode getMousePosition() pour récupérer la position de la souris. Or cette méthode retourne null lorsque la souris est en dehors du composant, donc ça plante sur la ligne x=point.x(); (NullPointerException).

    Dans le constructeur de ta classe, par exemple, tu écrit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    mouseEvent mouseListener = new mouseEvent();
    addMouseListener(mouseEvent);
    addMouseMotionListener(mouseEvent);
    Et le code que tu as dans boucle_principale_jeu(), tu le mets dans la méthode mouseMoved() en récupérant le point sur le paramètre de type MouseEvent en entrée.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    public void mouseMoved(MouseEvent event){
        	Point point = event.getPoint();
        	int X = point.x;
        	int Y = point.y;
    /** ... **/
    Accessoirement, la classe ;

    • devrait s'appeler MyMouseListener par exemple (convention d'écriture CamelCase, et nom plus adéquate, ne risquant pas conflit avec une classe existante utile)
    • devrait n'implémenter que MouseMotionListener, ou étendant MouseAdapter au moins


    Sinon, par ailleurs, je ne sais pas ce que c'est que ce "boutons", et ce qu'il y a dans listeBoutons, mais peut-être que l'enregistrement de l'écouteur serait plus judicieux directement sur ces composants, ce qui t'éviterait d'avoir une série de comparaison avec des bornes en durs.

  9. #9
    Nouveau Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2015
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2015
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    Merci beaucoup pour votre réponse !
    J'ai réussi à modifier mon code, il marche bien maintenant !

Discussions similaires

  1. Déclencher un mouse event
    Par FreshVic dans le forum AWT/Swing
    Réponses: 6
    Dernier message: 17/04/2008, 12h23
  2. Des Mouse event (clic) oubliés dans mon JPanel
    Par nouknouk dans le forum AWT/Swing
    Réponses: 12
    Dernier message: 04/04/2007, 17h26
  3. Mouse Event sur un treeItem
    Par lanyl dans le forum SWT/JFace
    Réponses: 1
    Dernier message: 26/11/2006, 09h29
  4. Bouton inactif et mouse event
    Par poulette dans le forum MFC
    Réponses: 2
    Dernier message: 03/02/2005, 15h18
  5. [Debutant] Erreur "Unhandled event loop exception"
    Par pilz dans le forum Eclipse Platform
    Réponses: 14
    Dernier message: 08/12/2004, 16h19

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