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

AWT/Swing Java Discussion :

[TreeSelectionListener] je peux pas appeler une zone de texte au sein d'une methode?!


Sujet :

AWT/Swing Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : Maroc

    Informations forums :
    Inscription : Avril 2003
    Messages : 24
    Points : 20
    Points
    20
    Par défaut [TreeSelectionListener] je peux pas appeler une zone de texte au sein d'une methode?!
    Bonsoir,

    J'ai rencontré le probleme suivant:
    j'utilise une classe qui affiche une fenetre contenant 2 Jpanel le 1er (à gauche) affiche un tree de neuds et le 2eme (à droite) contient une zonne de texte. quand je clique sur un noeud il y a un TreeSelectionListener qui s'active et affiche alors le contenu sur la zone de texte.

    Tout ca marche bien, le probleme c'est que maintenant j'essaie d'appeler cette classe depuis une autre classe , qui contient une zone de texte. Donc j'appele la 1ere classe en lui passant comme parametre la zone de texte et je veux que lorsque je clique sur un neud dans le tree, non seulement que sont contenu s'affiche dans la 1ere zone de texte mais aussi dans la 2eme zone de texte. mais ca marche pas, car le compilateur ne veut meme pas accepter que j'utilise la zone de texte passée en parametre dans le TreeSelectionListener.

    Voici le code pour plus de lumiere:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    public MibParser(String mibs, JTextField txt_oid) {
    // ........ ici il y a du code
     
     
    // Need to setup a listener for selection to display data:
     
        TreeSelectionListener listener = new TreeSelectionListener() 
       {
     
          public void valueChanged(TreeSelectionEvent e ) 
          {
            Object selected = e.getPath().getLastPathComponent();
            if (selected instanceof NodeData) {
              Object obj = ((NodeData)selected).getUserObject();
              if (obj instanceof MibNode) 
              {
              text.setText("\n\n"+ ((MibNode)obj).toTagString() ); // ici ca marche :"text" est une zone de texte qui appartient à cette meme classe
     
              System.out.println("TreeSelectionListener appélé" + text.getText());
              txt_oid.setText(text.getText()); // ici ca casse : "txt_oid" est la zone de texte passée en parametre.
              }
     
            } //else text.setText( "Selected: "+selected.getClass() );
          }
        };
     
            tree.tree.addTreeSelectionListener(listener);
            tree.tree.expandRow(0);
     
    }
    Merci pour votre aide et si vous avez besoin de plus d'eclaircisements je suis disponible.

  2. #2
    Membre éclairé Avatar de grabriel
    Inscrit en
    Septembre 2006
    Messages
    946
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 946
    Points : 730
    Points
    730
    Par défaut
    Salut,

    mais ca marche pas, car le compilateur ne veut meme pas accepter que j'utilise la zone de texte passée en parametre dans le TreeSelectionListener.
    Le compilateur dit quoi?

    à vue de nez si tu mets

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    final JTextField txt_oid
    Est-ce que ca passe???

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : Maroc

    Informations forums :
    Inscription : Avril 2003
    Messages : 24
    Points : 20
    Points
    20
    Par défaut
    Wé gabriel, tu as raison, je suis désolé, j'ai deja trouvé la solution mais j'ai oublié de marquer mon post comme "résolu".

    En fait mon EDI, eclipse en l'occurence , m'avait proposé de declarer cette zonne de texte passée en parametre comme "final" je l'ai fais et ca a marché !! mais j'a voue que je ne comprend pas encore pourquoi je dois la declarer comme "final" , alors qu'il ne s'agit nullement d'une constante !! c'est un simple controle passé en paramettre !! est ce que vous pouvez m'eclairer la dessus ?

    Merci Gabriel, merci à tous.

  4. #4
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 840
    Points : 22 854
    Points
    22 854
    Billets dans le blog
    51
    Par défaut
    Le final ne sert pas vraiment ici a declarer une constante mais a permettre de referencer la variable (qui peut etre un parametre la methode comme dans ton code ou une variable interne la methode) de maniere a la rendre accessible aux classes anonymes declarees dans la methode. Tu peux considerer ton TreeSelectionListener comme etant un bloc de code separe qui ne peut pas acceder a txt_oid si cette variable n'a pas ete declaree final. L'acces a text est possible car text est problement une variable d'instance et est donc accessible depuis toutes les methodes et classes internes (anymones ou non) non-statiques.
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : Maroc

    Informations forums :
    Inscription : Avril 2003
    Messages : 24
    Points : 20
    Points
    20
    Par défaut
    Merci bouye pour ton eclaircissement.

    Je trouve que ce forum a un temps de reponse moyen (meme si j'ai pas fais de sondage) tres reduit, et cela aide à mieux travailler.

    Merci pour tout ce que vous entreprenez.

    Donc je declare ce sujet clos et donc résolu.

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 13/09/2009, 03h40
  2. Réponses: 2
    Dernier message: 09/01/2009, 11h51
  3. <DEBUTANT> Remplir une zone de texte en fonction d'une liste
    Par Superbretzel dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 26/05/2008, 20h40
  4. Impression d'une zone dans un tableau et masquer une zone
    Par kazannova dans le forum Macros et VBA Excel
    Réponses: 19
    Dernier message: 18/04/2008, 03h48
  5. Réponses: 11
    Dernier message: 29/05/2007, 08h05

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