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

Java Discussion :

Identifier correctement la noeud d'un Jtree


Sujet :

Java

  1. #1
    Membre averti

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2007
    Messages
    186
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Alpes de Haute Provence (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2007
    Messages : 186
    Points : 399
    Points
    399
    Par défaut Identifier correctement la noeud d'un Jtree
    Bonjour,
    J'aimerai savoir comment tester correctement la feuille de mon jTree. Car, de temps en temps avec mon TreeSelectionListener, une exeption est généré:
    Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
    Voici par exemple ce bout de code:
    Code java : 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
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    jTreeContacts.addTreeSelectionListener(new TreeSelectionListener() {
     
                public void valueChanged(TreeSelectionEvent e) {
     
                    if (!jTreeContacts.getLastSelectedPathComponent().equals(null)) {
     
                        DefaultMutableTreeNode noeud = (DefaultMutableTreeNode) jTreeContacts.getLastSelectedPathComponent();
     
                        if(noeud.isLeaf()) {
     
                            Contact contact = (Contact) noeud.getUserObject();
     
                            // clic sur un contact ayant demandé l'ajout en contact
                            if (contact.getEtat().equals("demande")) {
     
                               JFrame frameconfirmDemande = new JFrame( "Demande d'ajout" );
                               int reponse = JOptionPane.showConfirmDialog(frameconfirmDemande, "Voulez vous accépter cette personne dans vos contacts ?");
     
                                  if( reponse != JOptionPane.CLOSED_OPTION) {
                                    switch ( reponse ) {
                                        case JOptionPane.YES_OPTION:
                                            Contact.accepter(contact.getId());
                                        break;
                                        case JOptionPane.NO_OPTION:
                                            Contact.refuser(contact.getId());
                                        break;
                                    }
     
                                    initContacts();
     
                                  } else {
     
                                  }
     
                            }
     
                        }
     
                    }
     
                }
     
     
            });
    Avec ce code, par exemple, lorsque l'on "accepte" un contact, Contact.accepter(contact.getId()); s'effectue correctement, mais l'exeption en citation au dessus se produit.

    :/

  2. #2
    Membre averti

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2007
    Messages
    186
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Alpes de Haute Provence (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2007
    Messages : 186
    Points : 399
    Points
    399
    Par défaut
    D'ailleurs j'ai peut-être une information en plus. J'ai l'impression que l'exception survient lorsque la branche ne possède plus de feuilles. Etant reconnu comme feuille, le processus s'engage mais ne réagit pas correctement puisque ce n'est pas l'objet attendu.
    A ce moment là, comme puis-je vérifier si mon Objet est (par exemple) un "Contact" ou un "Groupe" [...] ?

  3. #3
    Membre averti

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2007
    Messages
    186
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Alpes de Haute Provence (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2007
    Messages : 186
    Points : 399
    Points
    399
    Par défaut
    Comme cecie je peux récupérer le nom de la classe:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    noeud.getUserObject().getClass().getName()
    Ca résout en quelque sorte mon problème. Je notifie le topic comme résolu.

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

Discussions similaires

  1. Lien graphique entre les noeuds d'un JTree
    Par seiryujay dans le forum Composants
    Réponses: 4
    Dernier message: 28/03/2007, 17h43
  2. recuperer l'identifiant d'un noeud(treeview)
    Par Ismaël(l) dans le forum VB.NET
    Réponses: 5
    Dernier message: 24/02/2007, 13h02
  3. Ajouter ou supprimer noeud dans un JTree
    Par jdewalqu dans le forum Composants
    Réponses: 6
    Dernier message: 11/07/2006, 09h35
  4. JPanel comme noeud d'un JTree
    Par osopardo dans le forum Composants
    Réponses: 2
    Dernier message: 08/07/2006, 22h28
  5. Nom d'un noeud d'un JTree
    Par menuge dans le forum Composants
    Réponses: 2
    Dernier message: 26/04/2006, 15h19

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