Khyvodul
Messages postés2Date d'inscriptionmardi 31 janvier 2006StatutMembreDernière intervention15 novembre 2007
-
24 oct. 2007 à 19:27
Khyvodul
Messages postés2Date d'inscriptionmardi 31 janvier 2006StatutMembreDernière intervention15 novembre 2007
-
15 nov. 2007 à 17:14
Bonjour à tous,
J'ai un soucis un peu déroutant. J'ai codé un programme java avec une interface un peu fournie qui utilise plusieurs écouteurs d'évenements :
- un MouseListener
- un KeyListener
- un FocusListener
- un ActionListener
et un MouseWheelListener.
Tous fonctionnent sans problème excepté le MouseWheelListener. Lorsque je bouge la roue de ma souris j'obtiens l'erreur :
java.lang.StackOverflowError
alors que je ne fais absolument acun traitement dans la méthode
public void mouseWheelMoved(MouseWheelEvent e) { }
En cherchant un peu, j'ai constaté que la seule chose qui cause cete erreur est une récurtion sans limite qui fait déborder la pile. Dans mon cas, il n'y a rien de fait par la suite (pas même un System.out.println() ... ).
Est-ce que la présence simultannée d'un MouseListener et d'un MouseWheelListener peut engendrer un appel mutuel entre les deux causant au final le débordement de la pile ?
Khyvodul
Messages postés2Date d'inscriptionmardi 31 janvier 2006StatutMembreDernière intervention15 novembre 2007 15 nov. 2007 à 17:14
J'ai fini par trouver comment faire marcher mon affaire. Apparemment, c'était un problème concernant l'objet qui appellait le MouseWheelListener. Pour moi c'était ma JFrame principale. Après quelques tests (avec un autre projet beaucoup plus petit pour éviter d'éventuelles interférences), j'ai fini par découvrir que lorsque que c'est à une JFrame qu'on ajoute un MouseWheelListener ça pose problème (pourquoi, aucune idée !). Du coup c'est c'est au Container de la JFrame que j'ai ajouté le Listener et ça fonctionne parfaitement .
Twinuts
Messages postés5375Date d'inscriptiondimanche 4 mai 2003StatutModérateurDernière intervention14 juin 2023111 24 oct. 2007 à 19:34
Salut,
là comme ça je ne peux pas t'aider à résoudre ton problème mais une chose est sure c'est que l'implémentation de MouseListener et MouseWheelListener dans une même classe ne cause pas cette erreur
------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."