Ayuda JAVA - TreeNodes y Lista

F4nG

Bovino maduro
#1
Buenas comunidad bakuna, verán estoy tratando de hacer un clásico manejador de archivos en java, utilizando un Tree, y una Lista. Como pueden ver en la imagen ya he logrado hacer que en el tree sólo se muestren los directorios (carpetas), y en la lista sólo los archivos, lo único que me falta es poder hacer que al seleccionar un nodo del árbol, este haga que la lista se actualice y muestre los archivos que están dentro de ese directorio, aqui dejo mi códig, espero que alguien me pueda ayudar :confused:


Y Aqui mi código
public class frmListarArchivos extends javax.swing.JFrame {

private DefaultMutableTreeNode raiz;
private DefaultTreeModel modeloArbol ;
private DefaultListModel modeloLista;
/** Creates new form frmListarArchivos */
public frmListarArchivos() {
initComponents();
raiz = new DefaultMutableTreeNode("C:/");
modeloArbol = new DefaultTreeModel(raiz);//Brinda un modelo x defecto al arbol raiz
modeloLista = new DefaultListModel();//brinda un modelo x defecto para las listas
File directorio = new File("C:/");
if(directorio.isDirectory() && directorio.exists())
{
File[] nombres = directorio.listFiles();
//Aqui va a incluir a todo archivo en el directorio, dentro del arbol
for(File n:nombres)
{
if(n.isDirectory())
{
DefaultMutableTreeNode nuevoNodo = new DefaultMutableTreeNode(n);
raiz.add(nuevoNodo);//Agregando los directorios al tree
}
if(n.isFile())
modeloLista.addElement(n.getPath());//Agregando los archivos a la lista
}

}
treeDirectorios.setModel(modeloArbol);//le da a la herramienta tree el arbol que creamos
listArchivos.setModel(modeloLista);
treeDirectorios.getSelectionModel().setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION);//para indicar que el arbol solo podra ser seleecionado una vez
treeDirectorios.addTreeSelectionListener(new TreeSelectionListener() {
public void valueChanged(TreeSelectionEvent e) {
/*Esto último es un listener, bueno es algo que encontré en internet de una posibilidad de poder hacer, pero no hallé la manera a las finales.*/
Espero me puedan ayudar. Saludos
 
Arriba