La Web del Programador: Comunidad de Programadores
 
    Pregunta:  4084 - COMPONENTE JTREE
Autor:  Monthzerrat Zorrilla
Como agregar nodos hijos y padres al componente Jtree de swing

  Respuesta:  j. alfredo
te envio un ejemplo de como tratar el jtree, yo utilizo el netbeans, pero se hace igual.....

1) importas las clases:

import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.DefaultTreeModel;
import javax.swing.tree.TreeNode;
import java.awt.event.InputEvent;

2) Luego creas, al menos en netbeans, el modelo(root) del arbol y el nodo raiz(nodo)

DefaultMutableTreeNode nodo=new DefaultMutableTreeNode("DbServer");
DefaultTreeModel root=new DefaultTreeModel((TreeNode) nodo);

3) En esta caso yo agrego items o nodos al nodo que aparece seleccionado en el arbol, es decir, cuand presiono el boton, se agrega un nodo con el texto que aparece el edit.getText();, la ventaja de utilizar el método "insertNodeInto", es que el arbol se repinta automáticamente, contrario(al menos yo no encontre la manera sencilla) a lo que pasa si utilizas el método add.....

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
DefaultMutableTreeNode padre=(DefaultMutableTreeNode) arbol.getLastSelectedPathComponent();
root.insertNodeInto(new DefaultMutableTreeNode(edit.getText()), padre, padre.getChildCount());
}

Espero te sirva mi humilde comentario.....bye....

  Respuesta:  al kitte
Hallo!.

Bueno, pues los nodos son instancias (o descendientes) de la clase DefaultMutableTreeNode del paquete javax.swing.tree o implementar la interface "TreeNode".

Primero creas el arbol pasandole el nodo raiz, y despues vas anyadiendo los hijos al nodo padre (no al arbol) con el metodo "add".

Otra cosa, para que el arbol tenga Scroll, tienes que meterlo en un panel javax.swing.JScrollPane .

Bueno, no me ha quedado muy claro, si quieres saber algo mas me puedes escribir, y si quieres te paso un control que tengo echo yo para usar el arbol de forma "limpia" (con panel de scroll incluido, acepta cualquier objeto como nodo, puedes escoger el icono de cada nodo, drag&drop, etc).

Eso es todo, saludos desde alemania,

alkitte.
Freedom for the Source Code.