Comme indiqué dans le titre, j'ai un JPanel avec deux ou plusieurs composants JPanel enfants et j'aimerais propager un événement de souris à tous les composants enfants. Disons par exemple que j'ai un événement de glissement de souris qui dessine un rectangle dans l'un des objets JPanel enfant. Je voudrais que les autres enfants JPanel dessinent la même chose de manière synchronisée.
Le premier problème rencontré est que généralement seul le composant le plus en haut résidant "sous" l'événement de souris reçoit la notification de l'événement de souris particulier, ce qui a du sens pour la plupart des applications. J'ai (presque) obtenu le comportement que je cherchais en abandonnant la route habituellement utilisée avec MouseListener et en utilisant enableEvents() pour activer différents événements de souris, puis en remplaçant processMouseEvent() et processMouseMotionMotionEvent() de sorte que chaque fonction distribue les événements de souris (avec des coordonnées modifiées à partir des coordonnées parentes) à chaque JPanel enfant pour dessiner ce qui est nécessaire. Cependant, je ne suis pas sûr si la route que j'ai choisie est la meilleure et je voulais avoir quelques opinions supplémentaires sur la question.
Une autre méthode que j'aurais aimé implémenter était de remplacer la méthode dispatchEvent( AWTEvent e ) et de distribuer les événements à chacun des panels enfants en appelant dispatchEvent sur chacun d'eux, mais malheureusement dispatchEvent( AWTEvent e ) n'est pas substituable.
Toute aide générale serait grandement appréciée.