Evènements et ordre d'affichage sur un JPanel

cs_ejoey Messages postés 5 Date d'inscription jeudi 4 décembre 2008 Statut Membre Dernière intervention 30 juillet 2009 - 28 avril 2009 à 23:51
cs_ejoey Messages postés 5 Date d'inscription jeudi 4 décembre 2008 Statut Membre Dernière intervention 30 juillet 2009 - 29 avril 2009 à 15:37
Bonjour,
J'utilise un JPanel sans LayoutManager pour pouvoir placer des composants en superposant certains d'entre eux tel que celui en dessous puisse être couvert entièrement ou en partie par un autre ou plusieurs composants. Mon problème c'est qu'ils ne s'affichent pas dans l'ordre que je souhaite. J'ai donc décidé de redéfinir paintChildren en définissant un certain ordre d'affichage. Pour mon programme je souhaiterai pouvoir sélectionner les composants que je peux voir. Pour cela, je leur ai attaché un MouseListener sur chacun.
Mon problème c'est que lorsque je déclenche l'évènement, il se fait sur le composant que le JPanel juge être au dessus et ce n'est pas forcément celui que je vois. Donc parfois les évènements sont capturés par les composants que je ne vois pas et je ne trouve aucun moyen dans la documentation qui m'aiderait à règler ce problème.

2 réponses

uhrand Messages postés 491 Date d'inscription samedi 20 mai 2006 Statut Membre Dernière intervention 15 juillet 2012 9
29 avril 2009 à 03:21
Pourquoi tu n'utilise pas setComponentZOrder pour modifier l'ordre d'affichage? Par exemple, le code suivant met p2 à l'avant-plan du panel:
panel.setComponentZOrder(p2, 0);
0
cs_ejoey Messages postés 5 Date d'inscription jeudi 4 décembre 2008 Statut Membre Dernière intervention 30 juillet 2009
29 avril 2009 à 15:37
Merci pour l'aide car je n'avais pas remarqué cette méthode dans l'API. En effet cela marche nickel.
0
Rejoignez-nous