[TP7 - 2.2] Choix de la méthode à appeler.

Programmation Avancée

Modérateur : Douin

franck.pascutti
Messages : 9
Inscription : 30 sept. 2017 15:09

[TP7 - 2.2] Choix de la méthode à appeler.

Message par franck.pascutti » 13 déc. 2017 21:53

Bonsoir,

Je me confronte à un problème dans mon implémentation des méthodes 'lierSourceEtListener' et 'delierSourceEtListener' lorsque j'execute l'application.

En effet, lors de la liaison entre l'objet 'smiley' et une instance de 'UnObservateurDeSouris', ma méthode 'lierSourceEtListener' lance une exception car elle trouve plusieurs méthodes pouvant être invoquées.
Voici les méthodes trouvées :
* public synchronized void java.awt.Component.addMouseListener(java.awt.event.MouseListener),
* public synchronized void java.awt.Component.addMouseMotionListener(java.awt.event.MouseMotionListener),
* public synchronized void java.awt.Component.addMouseWheelListener(java.awt.event.MouseWheelListener).

Le résultat semble correct car la classe 'Smiley' expose bien ces 3 méthodes. Chacune de ces méthode prend un seul argument. Finalement, la classe 'UnObservateurDeSouris' étend la classe abstraite 'MouseAdapter' qui implémente les 3 interfaces 'MouseListener', 'MouseMotionListener' et 'MouseWheelListener'.
Comment suis-je censé identifier qu'il me faut appeler la méthode 'addMouseListener' ?

Voici rapidement les tests que j'utilise pour identifier les méthodes compatibles :
1. Vérifier que le nom de la méthode corresponde à 'addXXXListener'.
2. Vérifier que cette méthode ne prend qu'un argument.
3. Vérifier que l'objet 'listener' peut être utilisé comme argument.

Merci de vos réponses.

Douin
Messages : 368
Inscription : 18 mars 2009 15:46

Re: [TP7 - 2.2] Choix de la méthode à appeler.

Message par Douin » 14 déc. 2017 15:13

Bonjour,
Comment suis-je censé identifier qu'il me faut appeler la méthode 'addMouseListener' ?
La classe devrait implémenter MouseListener, est-ce que cela répond à votre question ?

à suivre...

franck.pascutti
Messages : 9
Inscription : 30 sept. 2017 15:09

Re: [TP7 - 2.2] Choix de la méthode à appeler.

Message par franck.pascutti » 14 déc. 2017 21:31

Bonsoir,

Si je comprend bien il ne faut tester que les interfaces directement implémentées par l'objet et pas celles implémentées par des classes parentes.

Ce qui me gênait est que cette classe implémente aussi (indirectement via MouseAdapter) les interfaces MouseMotionListener et MouseWheelListener.
Il ne me semblait pas évident qu'il faille faire la différence entre les interfaces implémentées dans cette classe et celle implémentées dans des classes parentes.

Merci de votre réponse.

Répondre

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 1 invité