JTree et base de données

samlane_37 Messages postés 11 Date d'inscription samedi 23 avril 2005 Statut Membre Dernière intervention 25 avril 2009 - 29 janv. 2008 à 10:46
samlane_37 Messages postés 11 Date d'inscription samedi 23 avril 2005 Statut Membre Dernière intervention 25 avril 2009 - 29 janv. 2008 à 13:57
Bonjour,

je cherche une idée pour pouvoir sauvegarder en base les données d'un JTree (noeuds, feuilles,) et les recharger a partir de la base.

Toute idée est la bien venu.

merci

2 réponses

Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
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 ..."

OoWORAoO
0
samlane_37 Messages postés 11 Date d'inscription samedi 23 avril 2005 Statut Membre Dernière intervention 25 avril 2009
29 janv. 2008 à 13:57
Merci,

mais mon probleme est plus de créer le DefaultMutableTreeNode à partir des données de la base

explication:
en base, je stocke chaque lignes de mon JTree avec differents niveau de hierarchie

exemple:
groupe            niveau 0
    sport           niveau 1
       tennis       niveau 2
       ...             niveau 2
    prog            niveau 1

mon probleme est de reconstruire se niveau de hierarchie

merci
0
Rejoignez-nous