2011-09-24 4 views
2

Je dois déplacer le focus d'un nœud JTree vers un autre nœud du nœud précédent sur lequel je clique.Déplacement d'un nœud JTree vers un autre

Exemple XML Document:

<br/> 
<'obo'><br/> 
<'term'><br/> 
<'id'>GO:0001<'/id'><br/> 
<'name'>candida... '<'/name'><br/> 
<'dbname'>' blah blah '<'/dbname'><br/> 
<'is_a'>'GO:0035'<'/is_a'><br/> 
<'/term'><br/> 
<'term'><br/> 
<'id'>'GO:0035'<'/id'><br/> 
<'name'>'candida... '<'/name'><br/> 
<'dbname'>' blah blah '<'/dbname'><br/> 
<'is_a'>'GO:00465'<'/is_a'><br/> 
<'/term'><br/> 
<'/obo'><br/> 

J'ai fait cela dans un JTree. Maintenant, je dois mettre l'accent sur GO: 0035 lorsque l'utilisateur clique sur GO: 0001.

J'essayais d'ajouter un objet SetSelectionListener() mais cela ne fonctionne pas dans mon Eclipse. J'ai pensé que je pourrais mettre une boucle pour lire chaque contrôle s'il y a un correspondant, s'il y a un chemin correspondant, ajouter un mouseListener à G0: 0001 et setPath à GO: 0035. Je suis nouveau sur Java, donc je ne suis pas particulièrement sûr de savoir comment faire cela. S'il vous plaît aider! :(

+0

je tentais de addTreeSelectionListener() mais ça ne marche pas dans mon Eclipse. Je pensais pouvoir définir une boucle pour lire chaque balise id s'il y avait une balise is_a correspondante, s'il y avait une balise is_a correspondante, puis obtenir son chemin, ajouter un mouseListener à G0: 0001 et setPath à GO: 0035. Je suis nouveau à Java, donc je ne suis pas particulièrement sûr de savoir comment faire cela. S'il vous plaît aider! :( – user962837

Répondre

2

On ne sait pas comment vous construisez votre JTree ou TreeModel, mais vous pouvez trouver examples dans How to Use Trees. Si vous utilisez le DefaultTreeModel, vous pouvez effectuer une recherche à partir du nœud retourné par la méthode getRoot() du modèle, et vous pouvez construire une TreePath à ce noeud de destination. Utiliser la méthode setSelectionPath() de l'arbre pour sélectionner le nœud trouvé.

Si vous rencontrez toujours des problèmes, modifier votre question de fournir une sscce qui montre votre utilisation.

Questions connexes