No estoy seguro de que estés manejando correctamente el JTree. Si quieres establecer una dependencia jerárquica, tienes que crear un nodo y luego añadir el nodo hijo al nodo creado. Por ejemplo si la raíz es directorio, creas directorio, luego a directorio le añades general, a general le añades administrativo, a administrativo le añades contabilidad y así sucesivamente. Si añades todos los hijos al nodo raíz, todos los hijos estarán al mismo nivel y no tendrás la jerarquía.
Ejemplo creación de dependencias y jerarquía:
import javax.swing.JFrame;
import javax.swing.JTree;
import javax.swing.SwingUtilities;
import javax.swing.tree.DefaultMutableTreeNode;
public class TreeEjemplo extends JFrame
{
private JTree tree;
public TreeEjemplo()
{
//create the root node
DefaultMutableTreeNode root = new DefaultMutableTreeNode("Directorio");
//create the child nodes
DefaultMutableTreeNode aNode = new DefaultMutableTreeNode("General");
DefaultMutableTreeNode bNode = new DefaultMutableTreeNode("Administrativo");
DefaultMutableTreeNode cNode = new DefaultMutableTreeNode("Contabilidad");
//add the child nodes to the root node
root.add(aNode);
aNode.add(bNode);
bNode.add(cNode);
//create the tree by passing in the root node
tree = new JTree(root);
add(tree);
for (int i = 0; i < tree.getRowCount(); i++) {
tree.expandRow(i);
}
this.setSize(200,330);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setTitle("JTree Example");
//this.pack();
this.setVisible(true);
}
public static void main(String[] args)
{
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
new TreeEjemplo();
}
});
}
}