pseudo85
Messages postés64Date d'inscriptionmardi 7 février 2006StatutMembreDernière intervention17 juillet 2009
-
23 nov. 2008 à 16:58
pseudo85
Messages postés64Date d'inscriptionmardi 7 février 2006StatutMembreDernière intervention17 juillet 2009
-
25 nov. 2008 à 23:51
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:
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.
uhrand
Messages postés491Date d'inscriptionsamedi 20 mai 2006StatutMembreDernière intervention15 juillet 20129 23 nov. 2008 à 17:59
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
pseudo85
Messages postés64Date d'inscriptionmardi 7 février 2006StatutMembreDernière intervention17 juillet 2009 24 nov. 2008 à 19:41
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:
pseudo85
Messages postés64Date d'inscriptionmardi 7 février 2006StatutMembreDernière intervention17 juillet 2009 24 nov. 2008 à 22:05
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.
Vous n’avez pas trouvé la réponse que vous recherchez ?
pseudo85
Messages postés64Date d'inscriptionmardi 7 février 2006StatutMembreDernière intervention17 juillet 2009 25 nov. 2008 à 14:57
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.
uhrand
Messages postés491Date d'inscriptionsamedi 20 mai 2006StatutMembreDernière intervention15 juillet 20129 25 nov. 2008 à 17:16
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.
pseudo85
Messages postés64Date d'inscriptionmardi 7 février 2006StatutMembreDernière intervention17 juillet 2009 25 nov. 2008 à 17:53
Salut,
Tu veux dire qu'il n'y a pas moyen de retourner tous noeuds qui sont cochés (ceux qui sont cochés par l'utilisateur, et ceux qui sont cochés automatiquement)? Parce que dans mon programme, j'ai besoin d'avoir tous les noeuds cochés.
Merci.
uhrand
Messages postés491Date d'inscriptionsamedi 20 mai 2006StatutMembreDernière intervention15 juillet 20129 25 nov. 2008 à 19:12
En fait, c'est assez simple: si le dernier noeud du chemin retourné n'est pas une feuille, il suffit de parcourir ses enfants pour avoir les noeuds cochés.