Ordre d'invocation des auditeurs d'EventListenerList
Dans les applications Swing, les auditeurs d'événements sont enregistrés dans une EventListenerList, qui gère l'ordre dans lequel les auditeurs sont notifiés. Bien que la documentation EventListenerList suggère un ordre de notification spécifique, il n'est pas garanti.
Ordre attendu ou observé
Dans l'exemple fourni, l'écouteur parent a été ajouté au curseur devant l'auditeur local. Il s'agit d'un comportement attendu, car la documentation indique que les écouteurs sont avertis dans l'ordre dans lequel ils sont ajoutés. Cependant, ce n'est pas une garantie.
Problèmes de fiabilité
La documentation de JSlider et JComponent ne précise pas l'ordre de notification des auditeurs. Cela laisse ouverte la possibilité que les versions ultérieures de JRE modifient l'ordre, provoquant un comportement inattendu.
Approche recommandée
Pour garantir des résultats cohérents, il est recommandé de mettre en place une chaîne des auditeurs. De cette façon, vous pouvez contrôler l'ordre d'invocation des auditeurs en demandant à chaque auditeur de transmettre l'événement au prochain auditeur de la chaîne. En mettant en œuvre cette approche de chaînage, vous pouvez appliquer l'ordre de notification souhaité de manière plus fiable.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!