Bloquer un evenement

cs_MohamedTaha Messages postés 20 Date d'inscription samedi 31 décembre 2005 Statut Membre Dernière intervention 5 mai 2009 - 9 déc. 2007 à 23:52
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 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.

4 réponses

Utilisateur anonyme
10 déc. 2007 à 13:35
Consulte un drapeau dans la méthode appelée lors du déclenchement de l'événement.

Par exemple :

public void actionPerformed(ActionEvent ae){
       if(ignore_cette_événement == false)
                {
                 ......
                }
}

Quand tu veux ignorer cet événement, tu mets ce drapeau à true.

0
Ombitious_Developper Messages postés 2333 Date d'inscription samedi 28 février 2004 Statut Membre Dernière intervention 26 juillet 2013 38
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.

Bye.
0
Utilisateur anonyme
10 déc. 2007 à 20:22
[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.

0
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
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 ..."

OoWORAoO
0
Rejoignez-nous