cs_MohamedTaha
Messages postés20Date d'inscriptionsamedi 31 décembre 2005StatutMembreDernière intervention 5 mai 2009
-
9 déc. 2007 à 23:52
Twinuts
Messages postés5375Date d'inscriptiondimanche 4 mai 2003StatutModérateurDernière intervention14 juin 2023
-
10 déc. 2007 à 20:56
salut tout le monde,
est-ce que peut on bloquer un evenement à un certain moment c'est à dire de ne pas executer le code qu'il contient.
Exemple :
j'ai ajouté un evenement click sur un JLabel et à certain moment je veux bloquer l'execution de cet evenement(comme ci il n'existe pas) puis le debloquer plus tard.
Merci pour vos reponses.
Ombitious_Developper
Messages postés2333Date d'inscriptionsamedi 28 février 2004StatutMembreDernière intervention26 juillet 201338 10 déc. 2007 à 16:43
Salut:
Je me demande comment tu peux ajouter un ActionListener à un JLabel.
En désactivant un composant (setEnabled()) ce dernier ignore tous les événements qui le parviennent.
[auteur/OMBITIOUSDEVELOPPER/237842.aspx Ombitious_Developper]
a raison sur le fait que tu ne peux pas directement ajouter un ActionListener à un JLabel donc il faudrait que tu expliques ce que tu entends par "événement click".
Utiliser la méthode setEnabled fonctionne dans ton cas (sauf pour les événements envoyés par la souris) mais il est précisé dans la documentation que :
"Disabling a lightweight component does not prevent it from
receiving MouseEvents". Donc setEnabled ne bloque pas les événements dans ce cas, le composant léger n'ignore pas tous les événements qui lui parviennent contrairement à ce qu'avance [auteur/OMBITIOUSDEVELOPPER/237842.aspx Ombitious_Developper].
Il faut que tu nous dises précisément sur quel composant tu places ton listener. Si tu ne veux pas altérer l'aspect (par exemple si tu ne veux pas que ce composant se grise quand il n'écoute pas d'événements) ou bien si tu veux que le traitement associé à ton MouseListener ne soit pas exécuté même si tu utilises un composant léger, ma méthode est adéquate, sinon c'est celle d' [auteur/OMBITIOUSDEVELOPPER/237842.aspx Ombitious_Developper].
Une autre méthode consisterait à utiliser une méthode du genre remove...Listener pour retirer l'écouteur au moment où tu veux que l'événement ne soit pas pris en compte puis add...Listener pour replacer l'écouteur.
Twinuts
Messages postés5375Date d'inscriptiondimanche 4 mai 2003StatutModérateurDernière intervention14 juin 2023111 10 déc. 2007 à 20:56
Salut,
je pense que le composant à été désigné nan ??
"j'ai ajouté un evenement click sur un JLabel et à certain moment je
veux bloquer l'execution de cet evenement(comme ci il n'existe pas)
puis le debloquer plus tard.
"
Les méthodes proposées par [auteur/GOUESSEJ/684669.aspx gouessej] et [auteur/OMBITIOUSDEVELOPPER/237842.aspx Ombitious_Developper] sont valables sauf celle qui supprime et remet le listener qui risque de d'être plus lourdes qu'autre choses (enfin ça dépend de la complexité de ton IHM, genre si tu le fais sur une 100ene de composants tu vas perdre un temps considérable pour supprimer le listener...
------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."