Twinuts
Messages postés5375Date d'inscriptiondimanche 4 mai 2003StatutModérateurDernière intervention14 juin 2023111 29 janv. 2008 à 12:09
Salut,
j'ai pas de méthode miracle mais voici 2 méthodes (fait sur le tas donc non testé ^^) qui pourrons p'tetre t'aider :
1 - Création du DefaultMutableTreeNode depuis une List
@SuppressWarnings("unchecked")
public static DefaultMutableTreeNode list2DefaultMutableTreeNode(List<Object> list) {
DefaultMutableTreeNode node = new DefaultMutableTreeNode();
node = (DefaultMutableTreeNode)list.get(0);
DefaultMutableTreeNode child;
for (int i = 1; i < list.size(); ++i) {
Object specifier = list.get(i);
if (List.class.isInstance(specifier))
child = list2DefaultMutableTreeNode((List) specifier);
else{
/*la ligne ci-dessous permet de limiter l'exeption StackOverFlow lorsque la liste (list) est remplie via une deserialisation */
child = new DefaultMutableTreeNode();
child = (DefaultMutableTreeNode)specifier;
}
node.add(child);
}
return node;
}
2 - Création d'une List depuis un DefaultMutableTreeNode (le root)
@SuppressWarnings("unchecked")
public static List<Object> defaultMutableTreeNode2List(Object root) {
if (root != null) {
List<Object> child = new ArrayList<Object>(1);
DefaultMutableTreeNode rootNode = (DefaultMutableTreeNode) root;
rootNode.trimToSize();
int count = rootNode.getChildCount();
if (count != 0) child.add(rootNode);
Enumeration<Object> en = rootNode.children();
while (en.hasMoreElements()) {
Object node = en.nextElement();
if (((DefaultMutableTreeNode) node).children() != null)
child.add(defaultMutableTreeNode2List(((DefaultMutableTreeNode) node)));
}
if (count == 0) child.add(rootNode);
return child;
} else
return null;
}
limite ce que tu peux faire pour ne pas te prendre la tête c'est de mettre la liste(sérialisée) dans ta base de données....
------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."