begin process at 2008 08 28 16:08:44
1 233 191 membres
293 nouveaux aujourd'hui
14 291 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Bloquer un evenement [ Divers / Débutant(e) ] (MohamedTaha)

Bloquer un evenement le 09/12/2007 23:52:21

MohamedTaha
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.

Re : Bloquer un evenement le 10/12/2007 13:35:23

gouessej
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.


TUER : http://tuer.tuxfamily.org/tuer.php

yeah! vive java

Re : Bloquer un evenement le 10/12/2007 16:43:32

Ombitious_Developper
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.

Re : Bloquer un evenement le 10/12/2007 20:22:34

gouessej
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 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' 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.

TUER : http://tuer.tuxfamily.org/tuer.php

yeah! vive java

Re : Bloquer un evenement le 10/12/2007 20:56:06

Twinuts
Membre Club
(Admin CS)
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 gouessej et 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


Classé sous : bloquer, certain, evenement, moment

Participer à cet échange

Pub



Appels d'offres

Recherche developpeur ...
Budget : 700€
SITE MARCHAND LOCATION...
Budget : 3 000€
SITE MARCHAND POUR HOTEL
Budget : 4 000€

Snippets en rapport

CalendriCode

Août 2008
LMMJVSD
    123
45678910
11121314151617
18192021222324
25262728293031

Téléchargements

Logiciels à télécharger sur le même thème :

Boutique

Boutique de goodies CodeS-SourceS