Bonjour,
J'ai créé un Jtree personnalisé qui est généré lors d'une selection dans un JCombobox. En premier lieu (avant la selection) c'est le jtree d'une classe mere par defaut qui est affiché, et seulemnt apres selection, je veux la mettre à jour par un nouveau jtree qui est fille de cette classe mere (avec une nouvelle racine. mais la mise à jour ne s'effectue pas, je ne comprend pas pourquoi...
Si quelqu'un voit mon erreur, ca me débloquerait beaucoup, merci d'avance!
ma classe mère
ma classe fille
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32 public class JTreeDefaut extends JTree { private static MutableTreeNode root_defaut = new DefaultMutableTreeNode("Consultation détaillée"); protected DefaultTreeModel model = new DefaultTreeModel(root_defaut); /**Panneau d'appel*/ protected JPanelConsultTree panneauParent; /**Constructeur, * crée un arbre sur un modèle neutre (pas de type d'objet sélectionné). * @param panneau * Panneau stockant le Tree */ public JTreeDefaut(JPanelConsultTree panneau) { try { panneauParent = panneau; jbInit(); } catch (Exception e) { e.printStackTrace(); } } private void jbInit() throws Exception { this.setModel(model); this.setBorder(BorderFactory.createBevelBorder(BevelBorder.LOWERED)); this.setRootVisible(true); this.setVisible(true); //place la racine par defaut model.setRoot(root_defaut); model.reload(); } }
son appel
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53 public class JTreeTemoin extends JTreeDefaut{ private MutableTreeNode racine_temoin = new DefaultMutableTreeNode("Racine Témoins"); //noeuds statiques private MutableTreeNode TN_nominatifs = new DefaultMutableTreeNode("Par nominatif"); private MutableTreeNode TN_temoignages = new DefaultMutableTreeNode("Par participation à un témoignage"); private MutableTreeNode TN_nom = new DefaultMutableTreeNode("Nom"); private MutableTreeNode TN_prenom = new DefaultMutableTreeNode("Prénom"); private MutableTreeNode TN_dpts_temoignes = new DefaultMutableTreeNode("Départements"); private MutableTreeNode TN_enqueteur = new DefaultMutableTreeNode("Enqueteurs"); private MutableTreeNode TN_enquete = new DefaultMutableTreeNode("Enquetes"); public JTreeTemoin(JPanelConsultTree panneau) { super(panneau); try { model.setRoot(racine_temoin); model.reload(); this.setModel(model); this.repaint(); this.addMouseListener(new MouseAdapter() { public void mousePressed(MouseEvent e) { this_mousePressed(e); } }); TreeCellRenderer cellRenderer = getCellRenderer(); if (cellRenderer instanceof DefaultTreeCellRenderer) { DefaultTreeCellRenderer renderer = (DefaultTreeCellRenderer)cellRenderer; renderer.setLeafIcon(GestionImages.ico_tree_temoin); } //creerRacine(); //remplirDonneesStatiques(); } catch (Exception e) { e.printStackTrace(); } } private void creerRacine(){ MutableTreeNode racine_temp = new DefaultMutableTreeNode(); //titres racine_temp.insert(TN_nominatifs, 0); racine_temp.insert(TN_temoignages, 1); //liste des nominatifs TN_nominatifs.insert(TN_nom, 0); TN_nominatifs.insert(TN_prenom, 1); //liste des temoignages TN_temoignages.insert(TN_dpts_temoignes, 0); TN_temoignages.insert(TN_enqueteur, 1); TN_temoignages.insert(TN_enquete, 2); racine_temoin = racine_temp; model.setRoot(racine_temoin); model.reload(); } }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 public class JPanelConsultTree extends JPanel{ private JLabel Lab_objet = new JLabel("Objet recherché"); private JComboBox CB_objet = new JComboBox(Enumerations.enum_objet_consultable); protected JTreeDefaut Tree = new JTreeDefaut(this); private JScrollPane scroll = new JScrollPane(Tree); ... //fonction appellée lors de la selection protected void setTree(Object typeObjet){ if (typeObjet == Temoin.TYPE){ Tree = new JTreeTemoin(this); Tree.repaint(); scroll = new JScrollPane(Tree); scroll.repaint(); } }
Partager