Bonjour à tous,
Comment connaitre le nom de la méthode appelée par un eventListener (par exemple un clic de souris)?
Merci
Bonjour à tous,
Comment connaitre le nom de la méthode appelée par un eventListener (par exemple un clic de souris)?
Merci
Je ne comprend pas vraiment ta question. L'interface EventListener ne contient pas de méthode. Elle est la juste pour faire le lien entre tous les Listeners
Désolé, c'est vrai que ma formulation était pas terrible.
Par exemple, je crée un MouseListener sur un JButton.
Ce MouseListener (lors d'un clic) crée un nouvel objet qui appelle une méthode.
Comment connaître le nom de cette classe et de cette méthode depuis une autre classe?
Bonjour,
Tu ne crées pas de MouseListener sur un JButton, tu ajoutes un MouseListener à ton bouton ( via la méthode addXxxListener(tonListener) ), ensuite il ne te reste plus qu'à regarder la javadoc de l'interface correspondante (XxxListener ) afin d'y trouver toutes les méthodes appellées.
J'espère que j'étais assez clair.![]()
@+
Désolé de pas utiliser les bons termes, mais y'a tellement de vocabulaire spécifique à la POO.
Enfin bref, j'ajoute un Listener à mon JButton. Lors d'un clic, j'éxecute une méthode (création et affichage d'un graphe ds un JPanel). Je souhaite depuis une autre classe savoir quel est le nom de la méthode appelée par le Listener?
Je suis toujours aussi obscur?
Toutes les méthodes présentes dans l'interface XxxListener sont appellées, seulement il y a celle qui sont définies et engendre donc une réaction et d'autre dont le corps est vide et qui ne font donc rien.
Si ce n'est toujours pas clair n'hésite pas à poser des questions
@+
Je pense qu'il veux faire ceci :
Dans la procedure qui traite l'evenement click de la souris, il fait appel a une de ses prorpe methdoe "FaitQuelqueChose" pour dessiner dans son panel un graph precis.
Par contre j'imagine qu'il doit pouvoir dessiner plusieurs type de graphs, surement en fonction du bouton sur lequel il a cliquer.
Du coup une de ses classes, qui doit surement effectuer un traitement dependant du type de graph affiché, doit savoir quel est ce graph.
Donc, quel est la fonction "FaitQuelqueChose" qui a ete appelée.
Pour cela plusoeirs solutions sont possible, toutes issue de la meme technique : Affecter une valeurs a une variable.
Quand a savoir ou tu place cette variable .... le plus logique serait dans la classe qui execute la methode qui a besoin de cette information, mais tout autre classe peut faire l'affaire.
Voir meme une classe dedié a ce genre d'informations, declarant une variable statique et des methdoes statiques get/Set pour etre accessible de partout.
C'est pas tres propre mais c'esr efficace
Donc en resumé, lors du click ou directement au sein de la fonction qui doit etre identifiée, tu met a jour ladite variable avec une valeur de ton choix (entier, chaine, enumeration ...) pour informer qui veux que c'est cette fonction qui a ete executé. LEs procedures qui doivent effectuer un calcul dependant de cette valeur pourront la consulter le moment venu.
Merci Clorish, c'est la solution que j'avais utilisé, mais je pensais que l'on pouvait se servir de l'introspection pour déterminer quelle était la méthode appelée.
La réflexion ne permet pas ça?
J'en sais rien ... je suis debutant en java
Sous delphi on faisait comme ca ... et/ou on implementais un evenement (ie listener) pour avvertir en temps reel les modifications
Partager