Problema c JTree

Tava testando o JTree e tava tentando adicionar itens na JTree atrasves de 2 textField´s q recebiam o nome do novo nó e nó pai (onde seria inserido o novo nó), so q tive problemas c 1 cast, vcs sabem o q eh isso? A logica axo q a certa.

dtm = DefaultTreeModel
root = nó raiz

//se o pai for "root" executa este laco
if (jTextField2.getText().equals("root")) {
            DefaultMutableTreeNode filho = new DefaultMutableTreeNode(jTextField1.getText());
            root.add(filho);
            dtm.reload();
            return;
//se o pai n for o "root", executa isto      
        int index;
//pegando o nó pai, caso n seja o root
        index = dtm.getIndexOfChild((Object)root.getUserObject(), (Object)jTextField2.getText()); //ta dando pau nesta cast
        DefaultMutableTreeNode pai = (DefaultMutableTreeNode) root.getChildAt(index);
        DefaultMutableTreeNode filho = new DefaultMutableTreeNode(jTextField1.getText());
        pai.add(filho);
        dtm.reload();

O Pau eh CastException no getIndexOfChild();

Alguem sabe como arrumo isto?

Pq vc ta usando esse upcast para Object?

Tira isso cast q vc ta usando q vai funcionar.

Falow!

eu ja tinha testado sem este cast, dar a msm coisa:

Exception in thread “AWT-EventQueue-0” java.lang.ClassCastException: java.lang.String
at javax.swing.tree.DefaultTreeModel.getIndexOfChild(DefaultTreeModel.java:142)
at Principal11.jButton3ActionPerformed(Principal11.java:116)
at Principal11.access$200(Principal11.java:15)
at Principal11$3.actionPerformed(Principal11.java:62)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1849)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2169)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:420)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:258)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:234)
at java.awt.Component.processMouseEvent(Component.java:5488)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3126)
at java.awt.Component.processEvent(Component.java:5253)
at java.awt.Container.processEvent(Container.java:1966)
at java.awt.Component.dispatchEventImpl(Component.java:3955)
at java.awt.Container.dispatchEventImpl(Container.java:2024)
at java.awt.Component.dispatchEvent(Component.java:3803)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4212)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3892)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3822)
at java.awt.Container.dispatchEventImpl(Container.java:2010)
at java.awt.Window.dispatchEventImpl(Window.java:1774)
at java.awt.Component.dispatchEvent(Component.java:3803)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:463)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:242)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)

O pior q eu n vejo (posso ta enganado) problema neste cast. Guru´s do Java e Swing, help me aeee!!!

Tente fazer assim:

index = dtm.getIndexOfChild((Object)root.getUserObject(), new DefaultMutableTreeNode(TextField2.getText()));