Ciao a tutti,
devo convertire una struttura ad albero (TreeSLL) in un JTree.
Ho scritto il seguente codice:
codice:
private void createNodes(DefaultMutableTreeNode top,TreeSLL t) {
        DefaultMutableTreeNode category = null;
        QueueList todo = new QueueList();
        Trees.TreeNode tr = null;
        tree = new JTree(top);
        t.reset();
        Trees.TreeNode n = t.cursor;
        todo.enqueue(n);/*inserisco nella coda la radice*/
        DefaultTreeModel model = (DefaultTreeModel)tree.getModel();
        while ( !todo.isEmpty() ){/* finchè la coda non è vuota*/
                tr = (Trees.TreeNode)todo.dequeue();/*estraggo il primo nodo*/
                DefaultMutableTreeNode newNode = new DefaultMutableTreeNode(tr.getValue());
                iter = (SL_ListIterator) tr.childList.iterator();
                if (!tr.equals(n)){
                                
                    TreePath path = tree.getNextMatch(tr.parent().getValue(), 0, Position.Bias.Forward);
                    if (path == null)
                        System.out.print("null");
                    
                    else{
                        
                        DefaultMutableTreeNode node = (DefaultMutableTreeNode)path.getLastPathComponent();
                        model.insertNodeInto(newNode, node, node.getChildCount());
                        }
                    }
                
                while (iter.hasNext())
                    todo.enqueue(iter.next());
            }
Dove "todo" è una struttura a coda che mi permette la visita per livelli del mio albero "t" che passo come parametro.
La funzione deve visitare tutto l'albero "t" e produrre il JTree "tree".
L'idea è di visitare tutti i nodi di "t" e inserirli man mano sotto al loro padre (trovato dal metodo tree.getNextMatch(tr.parent().getValue(), 0, Position.Bias.Forward);
, dove tr,parent.getValue è il valore stringa del padre che dovrebbe essere già nel JTree nel momento in cui vado a cercarlo).

Il problema è che inserisce solo i nodi con padre uguale alla radice dell'albero, pocihè il suddetto metodo sembra non trovare i padri diversi dalla radice.

Spero di essermi spiegato e che qualcuno possa aiutarmi.
Grazie.