Bonsoir tout le monde. Alors voilà mon problème est le suivant :
pour mon projet, je dois créer une sorte de système de valves électroniques. Donc il y a des utilisateurs qui se connectent et qui lisent les messages qui leur concerne. Certains utilisateurs peuvent poster des annonces pour certains cours, années, section... La secretaire peut poster au nom d'un professeur. Et c est la que j ai mon problème. Lorsque la secretaire désire poster une annonce au nom d'un professeur ( qu'elle sélectionne dans une JComboBox ), le JTree contenant les cours dans lequel le user peut poster, doit se mettre à jour. Cette mis à jour se fait mais juste une fois! Lorsque je Rechange de user, le JTree ne se rafraichit plus :s
J'ai tout essayé mais sans succès. Voici le code de ma classe :
Merci d avance pour votre aide...
public
ControllerDestinataire(Model model){
this.setLayout(new BorderLayout()); this.model = model;this.model.addActionListener(this);monArbre = new JTree(chargerDestinataires());monArbre.addTreeSelectionListener(this);JScrollPane jsc =
new JScrollPane(monArbre);jsc.setBorder(
new TitledBorder("Destinataire"));this.add(jsc,BorderLayout.CENTER);this.setPreferredSize(new Dimension(120,0));}
public DefaultMutableTreeNode chargerDestinataires(){
if(monArbre!=null)remove(
monArbre);listeDestinataire = model.getCatégoriesDestinataires();DefaultMutableTreeNode tabRacine []=
new DefaultMutableTreeNode[listeDestinataire.size()];DefaultMutableTreeNode racine =
null;Catégorie cat;
for (int i = 0; i < listeDestinataire.size(); i++) {cat =
listeDestinataire.get(i);racine =
new DefaultMutableTreeNode(cat.getNom());tabRacine[i] = racine;
chargerSousCatégorie(tabRacine[i],cat);
}
return racine;}
privatevoid chargerSousCatégorie(DefaultMutableTreeNode racine, Catégorie catégorie){List listeSousCatégorie =
model.getListeSousCatégorie(catégorie);if(listeSousCatégorie.isEmpty())
return;if(listeSousCatégorie.get(0) instanceof Utilisateur){DefaultMutableTreeNode fils =
null;Iterator it = listeSousCatégorie.iterator();
Utilisateur user;
while(it.hasNext()){user = (Utilisateur)it.next();
fils =
new DefaultMutableTreeNode(user.getNom());racine.add(fils);
}
return;}
DefaultMutableTreeNode fils =
null;Iterator it = listeSousCatégorie.iterator();
Catégorie cat;
while(it.hasNext()){cat = (Catégorie)it.next();
fils =
new DefaultMutableTreeNode(cat.getNom());racine.add(fils);
chargerSousCatégorie(fils,cat);
}
}
publicvoid actionPerformed(ActionEvent ea) {
if(ea.getActionCommand().equals("utilisateur")){((DefaultTreeModel)
monArbre.getModel()).setRoot(chargerDestinataires());((DefaultTreeModel)
monArbre.getModel()).reload(); }
}