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

Composants Java Discussion :

[JTree] Récupérer le modèle à partir de la sélection


Sujet :

Composants Java

  1. #1
    Futur Membre du Club
    Inscrit en
    Mai 2005
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 5
    Points : 5
    Points
    5
    Par défaut [JTree] Récupérer le modèle à partir de la sélection
    bonjour j'ai un petit probleme :

    j'ai crée un jtree à partir d'une base de données mon probeme est que lorsque je clique sur un noeud du jtree je voudrais recupérer la clé primaire de la table, donc j'ai ajouter dans methode value de jtree

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cel node11 = (cel1)jTree1.getLastSelectedPathComponent();
    où cel est une classe qui peut recuperé les different colone de la db

    mais il declenche une erreur

    merci d'avance+

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    154
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 154
    Points : 143
    Points
    143
    Par défaut
    Indique la trace de l'erreur, sinon on ne peux rien faire pour toi.
    Bonne chance, Bonne journée, bonne année bonne santée et etc ...
    Youpi la vie est belle ! Et vive la fraicheur

  3. #3
    Futur Membre du Club
    Inscrit en
    Mai 2005
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 5
    Points : 5
    Points
    5
    Par défaut
    voici l'erreur

    java.lang.ClassCastException

    at syslog.MainFrame$principal_jTree1_treeSelectionAdapter.valueChanged(MainFrame.java:398)

    at javax.swing.JTree.fireValueChanged(JTree.java:2392)

    at javax.swing.JTree$TreeSelectionRedirector.valueChanged(JTree.java:2763)

    at javax.swing.tree.DefaultTreeSelectionModel.fireValueChanged(DefaultTreeSelectionModel.java:629)

    at javax.swing.tree.DefaultTreeSelectionModel.notifyPathChange(DefaultTreeSelectionModel.java:1076)

    at javax.swing.tree.DefaultTreeSelectionModel.setSelectionPaths(DefaultTreeSelectionModel.java:287)

    at javax.swing.tree.DefaultTreeSelectionModel.setSelectionPath(DefaultTreeSelectionModel.java:170)

    at javax.swing.JTree.setSelectionPath(JTree.java:1168)

    at javax.swing.plaf.basic.BasicTreeUI.selectPathForEvent(BasicTreeUI.java:2192)

    at javax.swing.plaf.basic.BasicTreeUI$MouseHandler.handleSelection(BasicTreeUI.java:2840)

    at javax.swing.plaf.basic.BasicTreeUI$MouseHandler.mousePressed(BasicTreeUI.java:2801)

    at java.awt.AWTEventMulticaster.mousePressed(AWTEventMulticaster.java:222)

    at java.awt.Component.processMouseEvent(Component.java:5097)

    at java.awt.Component.processEvent(Component.java:4897)

    at java.awt.Container.processEvent(Container.java:1569)

    at java.awt.Component.dispatchEventImpl(Component.java:3615)

    at java.awt.Container.dispatchEventImpl(Container.java:1627)

    at java.awt.Component.dispatchEvent(Component.java:3477)

    at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:3483)

    at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3195)

    at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3128)

    at java.awt.Container.dispatchEventImpl(Container.java:1613)

    at java.awt.Window.dispatchEventImpl(Window.java:1606)

    at java.awt.Component.dispatchEvent(Component.java:3477)

    at java.awt.EventQueue.dispatchEvent(EventQueue.java:456)

    at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:201)

    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:151)

    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:145)

    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:137)

    at java.awt.EventDispatchThread.run(EventDispatchThread.java:100)

  4. #4
    Membre confirmé Avatar de anitshka
    Inscrit en
    Mai 2004
    Messages
    624
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 624
    Points : 605
    Points
    605
    Par défaut
    java.lang.ClassCastException
    ca ca veux dire qu'a un endroit dans ton code, d'un coté de ton signe= la méthode renvoie quelque chose d'un certain type et que de l'autre coté du = il y a un autre type...

    ca ne serait pas ceci par hasard?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cel node11 = (cel1)jTree1.getLastSelectedPathComponent();
    d'un coté tu as du cel et de l'autre coté tu caste en cel1

    est tu sur que le type de ton noeud c'est bien cel1?
    Ni Dieu, ni maître, mais des frites bordel!

  5. #5
    Membre averti Avatar de biozaxx
    Profil pro
    Inscrit en
    Août 2004
    Messages
    403
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 403
    Points : 375
    Points
    375
    Par défaut
    il semblerait que l'objet qui est dans ton noeud ne soit pas du type cel1
    verifie bien quel type d'objet est associé a ton noeud .

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    154
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 154
    Points : 143
    Points
    143
    Par défaut
    Et pour vérifier le type tu écris la classe de l'objet.
    par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    System.out.println(jTree1.getLastSelectedPathComponent().getClass())
    Il est probable que ton objet soit une classe implémentant TreeNode et peut être même de DefaultMutableTreeNode. Dans ce dernier cas tu pourrais faire un getUserObject pour obtenir la valeur du noeud.
    Bonne chance, Bonne journée, bonne année bonne santée et etc ...
    Youpi la vie est belle ! Et vive la fraicheur

  7. #7
    Futur Membre du Club
    Inscrit en
    Mai 2005
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 5
    Points : 5
    Points
    5
    Par défaut
    merci pour vos reponse ,mais j'ai fais une erreur lorsque j'ai tapés la question mais dans mon code:
    cellule1 node11 = (cellule1)jTree1.getLastSelectedPathComponent();

    en fait je voudrais lorsque je clique sur un noeud par exemple un noeud ALEXE je recupere son nom et son age à partir de la base de donnée donc lorsque je clique sur ALEXE je recupere l'objet de type cellule1 qui va me permettre de recuperé ensuite les les autre champs qui existe dans la table

    si il ya un exemple ca m'aide bq

  8. #8
    Futur Membre du Club
    Inscrit en
    Mai 2005
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 5
    Points : 5
    Points
    5
    Par défaut
    merci bq pour vos reponses probleme resolu

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 21/05/2008, 13h40
  2. [JTree] Récupérer le noeud sélectionné, sans événement
    Par Bobsinglar dans le forum Composants
    Réponses: 4
    Dernier message: 26/05/2005, 18h06
  3. Réponses: 11
    Dernier message: 08/04/2005, 11h20
  4. Réponses: 3
    Dernier message: 24/09/2004, 21h21
  5. Fonction de zoom à partir d'une sélection souris
    Par mick74 dans le forum OpenGL
    Réponses: 2
    Dernier message: 13/08/2004, 21h41

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