Accueil > Forum > > > > sélectionner un chemin dans un jtree
sélectionner un chemin dans un jtree
dimanche 23 novembre 2008 à 16:58:09 |
sélectionner un chemin dans un jtree

pseudo85
|
Bonjour, Dans mon programme, si un noeud "n" est sélectionné dans arbre jTree1, tous ses noeuds parents doivent l'être aussi automatiquement. Pour cela, j'ai fait le code suivant:
DefaultMutableTreeNode node = (DefaultMutableTreeNode) jTree1.getLastSelectedPathComponent(); TreePath path = new TreePath (node.getPath()); jTree1.addSelectionPath(path.getParentPath());
Le problème est qu'il ne me sélectionne que le parent direct du noeud et pas les autres parents. Comment faire pour sélectionner tous les parents?
Un autre problème est qu'il faut que mon arbre permettent une sélection multiple
jTree1.getSelectionModel().setSelectionMod (TreeSelectionModel.DISCONTIGUOUS_TREE_SELECTION);
mais lorsque je sélectionne deux noeuds en même temps, le jTree1.getLastSelectedPathComponent() ne renvoie pas le dernier noeud sélectionné mais celui d'avant.
Quels est le problème SVP? Merci pour votre aide.
|
|
dimanche 23 novembre 2008 à 17:59:57 |
Re : sélectionner un chemin dans un jtree

uhrand
|
Voici une très belle alternative que j'ai déjà utilisé avec succès dans une application de production et qui fonctionne parfaitement: un JTree avec CheckBoxes. Quand on coche un noeud, tous les noeuds parents sont cochés également! http://www.jroller.com/santhosh/date/20050610
|
|
lundi 24 novembre 2008 à 19:41:39 |
Re : sélectionner un chemin dans un jtree

pseudo85
|
Merci uhrand pour ta réponse. C'est vrai que c'est nettement mieux avec les checkbox. J'ai juste un petit problème avec la classe "getTreeCellRendererComponent", plus précisément au niveau de l'instruction: checkBox.setState(Boolean.TRUE);
setState n'accèpte pas le type Boolean comme argument mais un State. Et c'est la meme chose avec l'instruction:
checkBox.setState(selectionModel.isPartiallySelected(path) ? null : Boolean.FALSE);
Comment faire pour résoudre ce problème? Merci pour votre aide.
|
|
lundi 24 novembre 2008 à 20:32:41 |
Re : sélectionner un chemin dans un jtree

uhrand
|
Réponse acceptée !
Tu as raison, je n'y avais plus pensé. J'avais fais les corrections dans le temps. Le mieux c'est que je te donne les sources telles que je les utilise actuellement: http://www.java-forum.org/de/userfiles/user3690/treeSupport.zip
|
|
lundi 24 novembre 2008 à 22:05:41 |
Re : sélectionner un chemin dans un jtree

pseudo85
|
Merci beaucoup uhrand, ça marche super bien, c génial. Encore une question, je veux avoir tous les noeuds sélectionnés (donc dans ce cas tous les noeuds cochés). D'habitude, pour avoir ça, je fais: TreePath[] paths = jTree1.getSelectionPaths(); Avec cette instruction, je n'ai que les chemins qui sont selectionnés, et pas ceux dont les noeuds sont cochés. Comment faire pour avoir les noeuds qui sont cochés?
Merci pour votre aide.
|
|
mardi 25 novembre 2008 à 07:29:46 |
Re : sélectionner un chemin dans un jtree

uhrand
|
checkedPaths = checkTreeManager.getSelectionModel().getSelectionPaths();
|
|
mardi 25 novembre 2008 à 12:27:13 |
Re : sélectionner un chemin dans un jtree

pseudo85
|
Pardon uhrand, je sais que j'exagère, mais comment déclarer le "checkTreeManager"? Merci.
|
|
mardi 25 novembre 2008 à 14:15:46 |
Re : sélectionner un chemin dans un jtree

pseudo85
|
Désolé, il suffit juste de faire: // makes your tree as CheckTree CheckTreeManager checkTreeManager = new CheckTreeManager(yourTree);
// to get the paths that were checked TreePath checkedPaths[] = checkTreeManager.getSelectionModel().getSelectionPaths();
Merci encore uhrand pour ton aide.
|
|
mardi 25 novembre 2008 à 14:57:59 |
Re : sélectionner un chemin dans un jtree

pseudo85
|
Bonjour, Encore une question, j'ai remarqué que cette instruction: checkedPaths = checkTreeManager.getSelectionModel().getSelectionPaths();
ne donne pas les chemins en entier (jusqu'au feuilles) qui sont obtenus en cochant un noeud parent, et donc automatiquement ses noeuds fils sont sélectionnés. Cette instruction ne donne pas le chemin complet (le chemin ne va pas jusqu'au fils). Je ne comprend pas pourquoi? Merci pour votre aide.
|
|
mardi 25 novembre 2008 à 17:16:34 |
Re : sélectionner un chemin dans un jtree

uhrand
|
Oui, c'est un peu déroutant, mais c'est voulu ainsi: un noeud sélectionné signifie automatiquement que les enfants sont sélectionnés également. En fait, ce serait une redondance de retourner explicitement tous les enfants.
|
|
Cette discussion est classée dans : problème, sélectionner, noeud, parents, jtree1
Répondre à ce message
Sujets en rapport avec ce message
Problème avec un JScrollPane [ par exarkun02 ]
BonjourJ'ai besoin d'utiliser un JScrollPane dans un champ de texte que je dois remplir à l'aide d'une base.Il faut que je puisse cliquer sur chaque é
Sélectionner un élément dasnun JTextArea [ par exarkun02 ]
Bon chuis toujours avec la même fenêtre que dans mon précédent message, mais maintenant les ascenseurs marchent.Mais bon j'arrive toujours pas à récup
.class problème [ par sneark ]
Bon je suis le débutant des débutant...Bon alors j'ai esseye de mettre un applet sur mon site mais ça a foirer: http://tout.cara.free.fr/merde.htmJ'ai
Scroll sur objet graphique... [ par Mikonyx ]
Salut, mon problème est le suivant, j'ai inséré une image à travers un composant java2d sur un jpane, j'ai ensuite inséré ce jpane sur un jscrollpane
Problème de variable d'environnement [ par malcom78 ]
Bonjour a tous, Je débute en java, et je ne sais pas ou se trouve sur win98 la variable d'environnement "Path" alors si vous pouviez m'aider SvpMerci
Problème d'exécution d'une applet [ par Vilinfo ]
Bonjour,J'ai téléchargé le JDK 1.4 et j'utilise Internet Explorer 6.Lorsque je veux visionner mon applet dans une page HTML, j'ai un pavé gris à la pl
une ligne et un polygone convexe [ par rekam ]
Bonjour à tous !Je me trouve devant un problème assez compliqué à résoudre. J'ai un polygone convexe, de la forme d'un T, affiché à l'écran (il représ
problème de ResultSet [ par GroSam ]
Salut!Alors voila j'ai un problème avec un resultset:[connexion...]ResultSet rs = stmt.executeQuery ("select * from table); metho
Problème avec un menu [ par schub1015 ]
J'ai récupérer un menu en javascript. C un menu qui se met an haut de la page (à l'horizontal) et qui se développe si la souris passe sur certaines zo
problème avec un menu... [ par blubsy ]
Bonjour, j'ai mis une applet java sur mon site pour le menu, et tous marche, mais voila si je modifi la taille de ma fenètre dans windows toute la pag
Livres en rapport
|
Derniers Blogs
GESTION D'EXCEPTION AVEC LES TASKSGESTION D'EXCEPTION AVEC LES TASKS par richardc
Nous avons vu dans un précédent article comment utiliser Task pour effectuer des opérations dans un autre thread.
Malheureusement, comme tout le monde n'est pas parfait, il se peut que cette exécution se passe mal et qu'une exception se produise.
La...
Cliquez pour lire la suite de l'article par richardc DéMARRONS AVEC LES TASKSDéMARRONS AVEC LES TASKS par richardc
Que vous le vouliez ou non, le développement multi-tâche est maintenant une obligation pour toute nouvelle application. Il est donc vital d'en comprendre les mécanismes et de s'y mettre le plus tôt possible.
En attendant le .NET Framework 4.5 avec le...
Cliquez pour lire la suite de l'article par richardc SLIDE & DéMO TECHDAYS 2012 - FAST & FURIOUS XAML APPSSLIDE & DéMO TECHDAYS 2012 - FAST & FURIOUS XAML APPS par Vko
Retrouvez les slides et les démo de ma session Fast & Furious XAML Apps. A ceux qui se posent la question : "est-ce que le code de la DataGrid est disponible?", je vous répondrais "pas encore". Je vais mettre en place un projet codeplex pour part...
Cliquez pour lire la suite de l'article par Vko XNA IS DEAD!XNA IS DEAD! par richardc
Depuis la semaine dernière (et grâce aux TechDays 2012), je me penche activement sur la nouvelle version de Windows, aka Windows 8. Vous me direz, il était temps puisque la première preview date de Septembre dernier.
OK. Remarquez, on n'en est qu'aux...
Cliquez pour lire la suite de l'article par richardc TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 !TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 ! par ROMELARD Fabrice
Speakers: Fabrice Meillon et Stanislas Quastana Cette session est basée entièrement sur celle donnée lors de la BUILD cet hiver. Il n'y a pas d'ajout d'information en rapport avec cet évènement passé. Windows 8 Server sera intégralem...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Logiciels
DocTranslate (V3.1.0.0)DOCTRANSLATE (V3.1.0.0)DocTranslate est un traducteur de document Microsoft Word, PowerPoint et Excel. Il permet d'autom... Cliquez pour télécharger DocTranslate Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System
|