Salut,
J'utilise un JXTreeTable avec plus ou moins de succès et j'ai des problèmes pour l'affichage des noeuds plus particulièrement... J'ai dû rater un épisode ou mal déclarer quelque chose mais je vois pas quoi.
Mon code pour afficher mon JXTreeTable (un peu réduit mais y'a tout ce qu'il faut) :
et mon TreeTableModel avec la méthode qui va bien
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 DefaultMutableTreeNode currentNameNode = null; DefaultMutableTreeNode node = new DefaultMutableTreeNode(new Compte()); for (Compte unCompte : list) { if (unCompte.getIdCompte()==0){ currentNameNode = new DefaultMutableTreeNode(unCompte); node.add(currentNameNode); }else currentNameNode.add(new DefaultMutableTreeNode(unCompte)); } tableCompte = new JXTreeTable(new CompteTreeTableModel(node));Donc normalement ca devrai afficher ca :
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 Object getValueAt(Object node, int column) { Object res = "n/a"; if (node instanceof DefaultMutableTreeNode) { DefaultMutableTreeNode defNode = (DefaultMutableTreeNode) node; if (defNode.getUserObject() instanceof Compte) { Compte unCompte = (Compte) defNode.getUserObject(); switch (column) { case COMPTE_COL: res = unCompte.getLibelle(); break; case NOTE_COL: res = unCompte.getNumero(); break; } } } return res; }
Libelle du Compte avec l'id0 | son numero
----Libelle du Compte | son numero
----Libelle du Compte | son numero
----etc...
au lieu de ca il m'affiche :
@L'Objet avec l'id0 | son numero
----L'Objet du Compte | son numero
----L'Objet du Compte | son numero
----etc...
Du coup j'ai essayé de mettre ca currentNameNode.add(new DefaultMutableTreeNode(unCompte.getLibelle()));
au lieu de ca currentNameNode.add(new DefaultMutableTreeNode(unCompte));
et la il m'affiche :
Libelle du Compte avec l'id0 | n/a
----Libelle du Compte | n/a
----Libelle du Compte | n/a
----etc...
Je ne comprends rien!!!!!
Si je passe en paramètre un objet Compte dans mon DefaultMutableTreeNode pour le getValueAt si je fais un System.out.println(res) pour la 1 ere colonne ca me renvoie bien le libelle de mon objet compte mais sur l'arbre ca affiche l'Objet...!!!!?????
[EDIT]
J'ai rajouté ca à ma classe compte et il m'affiche bien le libelle et le numéro.
Mais je ne comprends pas ce que j'ai fait de mal si je passe en paramètre un objet il me l'affiche dans la première colonne, alors que dans le TableModel je lui demande de m'afficher son libelle.....
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 @Override public String toString() { return libelle; }
[/EDIT]
Partager