IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Interfaces Graphiques en Java Discussion :

Supression d'écouteur impossible !


Sujet :

Interfaces Graphiques en Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2010
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 98
    Par défaut Supression d'écouteur impossible !
    Bonjour,
    j'ai créer une méthode pour pouvoir ajouter ou retirer des focusListenner sur mes JTextField, cela fonctionne pour l'ajout pas de problèmes, mais quand je les retire le focusListenner reste actif, pouvez vous m'aider svp ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    public void editPoint(boolean editable){
        	xJtf.setEditable(editable);
        	yJtf.setEditable(editable);
        	if(editable){
        		xJtf.addFocusListener(new FocusJtf());
        		yJtf.addFocusListener(new FocusJtf());
        	}
        	else{
        		xJtf.removeFocusListener(xJtf.getFocusListeners()[0]);
        		yJtf.removeFocusListener(yJtf.getFocusListeners()[0]);
        	}
        }
    Pour info, xJtf et yJtf sont des JTextField et FocusJtf() est une classe interne qui implémente FocusListener et redéfinie les méthodes
    Merci de votre aide !

  2. #2
    Membre éclairé

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2011
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Septembre 2011
    Messages : 37
    Par défaut
    Salut,

    Ta méthode editPoint est appelée où quand comment ?

    Est ce que ca ne pourrait pas être que tu ajoutes un nouveau listener à chaque appel de editPoint (s'il est éditable) et que tu retires uniquement le premier listener (s'il n'est pas éditable) ?

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2010
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 98
    Par défaut
    Je voudrais l'appeler avec un item du menu de mon application, pour le moment, je l'appelle dans mon constructeur uniquement.
    disons que pour le moment, je le laisse a false par défaut, donc les écouteurs ne sont même pas créés mais il suffit que je fasse un appel a true et ensuite a false et l'écouteur reste actif (malgré que le JTextField ne soit pas éditable)

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2010
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 98
    Par défaut
    Bon, j'ai résolu mon problème, en l'écouteur qu'il fallait supprimer se trouvait en 3ème position je ne comprend pas pourquoi d'ailleur !
    en faisant des:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    System.out.println(xJtf.getFocusListeners()[0]);
    System.out.println(xJtf.getFocusListeners()[1]);
    j'obtient:
    dot=0,mark=0
    Dot=(0, Forward) Mark=(0, Forward)
    Si quelqu'un sait a quoi sa correspond, je serais curieux de comprendre ...
    Merci !

  5. #5
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Beaucoup de composant swing utilisent en interne les listeners, rien ne te garanti donc que dans la liste des listeners il n'y a que tes listeners. Tu devrais plutot utiliser ce code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    FocusJtf listen = new FocusJtf();
    public void editPoint(boolean editable){
        	xJtf.setEditable(editable);
        	yJtf.setEditable(editable);
        	if(editable){
        		xJtf.addFocusListener(listen);
        		yJtf.addFocusListener(listen);
        	}
        	else{
        		xJtf.removeFocusListener(listen);
        		yJtf.removeFocusListener(listen);
        	}
        }

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2010
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 98
    Par défaut
    Merci pour ta réponse, je comprend mieux.
    Je vais faire comme tu me le conseille comme ça je n'aurais pas a revenir dessus.
    J'avoue que je n'était pas tranquille avec cette histoire d'index [2] pour le peu que je modifie un autre composant derrière, et que ça change encore je vais encore me retrouver dans la même situation.
    @ +++ et merci encore !

    EDIT: j'ai essayé, mais il semble que comme ça mon focusListener ne fonctionne pas mais bon, as de soucis, ça fonctionne quand même.
    @ +++

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 16/01/2003, 15h30
  2. [ArchiveBuilder][JavaMail] exécution impossible...
    Par Gorthal dans le forum JBuilder
    Réponses: 7
    Dernier message: 10/01/2003, 09h12
  3. Réponses: 8
    Dernier message: 20/11/2002, 11h50
  4. Impossible de quitter mon application!
    Par Bouillou dans le forum C++Builder
    Réponses: 4
    Dernier message: 12/11/2002, 20h43
  5. Réponses: 3
    Dernier message: 01/11/2002, 14h30

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo