Petit soucis avec un JTree : j'ai une fenêtre d'invite frameInvit qui permet de choisir un fichier xml qui sera affiché ensuite dans un JTree dans une autre frame frameAppli. L'implémentation marche, l'affichage également.
J'ai ajouté sur frameAppli un bouton de fermeture qui effectue un dispose sur frameAppli et qui permet de choisir un nouveau fichier xml (ou bien simplement de quitter l'application) depuis frameInvit. Le problème : lorsque j'ouvre un nouveau fichier, le JTree charge effectivement le nouveau fichier xml, mais conserve également l'ancien, puisque le dispose() effectué sur la frame frameAppli libère les ressources mais ces ressources peuvent être à nouveau affichées par un nouvel appel à pack() comme précisé dans la Javadoc de la méthode (ce qui sera évidemment fait lors du nouvel affichage...). Du coup, je me retrouve avec le noeud racine ayant 2 ensembles de fils : le 1er correspondant au 1er fichier, le 2nd au 2nd fichier.
Je charge le contenu du JTree en passant par un DefaultMutableTreeNode racine.
Pour cela, j'ai essayé :
- de passer par le modèle du JTree et de recharger le modèle et updater --> marche pas
- de charger un modèle null et de recharger le modèle et updater --> marche pas
Comment peut-on faire proprement un refresh du contenu du JTree ?