Los JTree

   Bueno, en una ocasión me preguntaron acerca de los árboles, nodos y todo eso, no pude publicar nada en el blog puesto que mi memoria se habia dañado (Kit OCZ platinum 4Gb @ 1066 Mhz).... Pero estaban en garantia (de 1 año) :D...

   En fin, vamos a lo que de verdad importa, en un programa esto se ve muy elegante y muy útil, por lo que haré varias entradas explicando pequeños tips, formas de utilizar estos nodos para crear aplicaciones bien completas.

   Primero respondo la pregunta que me dejaron la última vez, preguntaban como enviar a un área de texto mensajes para saber donde se hacia click o que se seleccionaba en el listener del árbol, bien para esto hay dos métodos.

   De forma rápida y sencilla o creamos un evento "onFocus" para cada uno de los elementos del árbol o creamos un evento "onClick" para cada uno, así que lo mas práctico, rápido y sencillo es crear el evento "onClick", vamos al ejemplo:
import javax.swing.*;
import java.awt.event.*;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.DefaultTreeModel;
import javax.swing.event.TreeSelectionEvent;
import javax.swing.event.TreeSelectionListener;

@SuppressWarnings("deprecation")
public class MiLista extends JFrame {
 DefaultMutableTreeNode A1 = new DefaultMutableTreeNode("Abuelo");
 DefaultMutableTreeNode P1 = new DefaultMutableTreeNode("Padre1");
 DefaultMutableTreeNode P2 = new DefaultMutableTreeNode("Padre2");
 DefaultMutableTreeNode H1a = new DefaultMutableTreeNode("Hijo1");
 DefaultMutableTreeNode H2a = new DefaultMutableTreeNode("Hijo2");
 DefaultMutableTreeNode H3a = new DefaultMutableTreeNode("Hijo3");
 DefaultMutableTreeNode H1b = new DefaultMutableTreeNode("Hijo1");
 DefaultMutableTreeNode H2b = new DefaultMutableTreeNode("Hijo2");
 DefaultMutableTreeNode H3b = new DefaultMutableTreeNode("Hijo3");
 JTree arbol = new JTree(A1);
 JTextArea mensajes = new JTextArea(10,35);
 JScrollPane scroll = new JScrollPane(mensajes);
 JPanel panel = new JPanel();

 public MiLista() {
  super("Arboles");
  setLocation(100,100);
  setSize(430,400);
  add(panel);
  A1.add(P1);
  A1.add(P2);
  P1.add(H1a);
  P1.add(H2a);
  P1.add(H3a);
  P2.add(H1b);
  P2.add(H2b);
  P2.add(H3b);
  panel.add(arbol);
  panel.add(scroll);
  arbol.addTreeSelectionListener(new TreeSelectionListener() {
    public void valueChanged(TreeSelectionEvent evt) {
     mensajes.append("Has seleccionado el nodo: "+
     evt.getPath().getLastPathComponent()+
     " en la carpeta: "+evt.getPath()+"\n");
    }
  });
  setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  setVisible(true);
 }

 public static void main(String[] arg) {
  JOptionPane.showMessageDialog(null,"Los JTree...\n");
  JOptionPane.showMessageDialog(null,"By Carlitox ("+
   "http://calitoxenlaweb.blogspot.com)");
  new MiLista();
 }
}
   Lo importante es ver las declaraciones de cada uno de los nodos y como se relacionan, pronto publicaré mas ejemplos de los "jTree".

Lamentablemente hay muchos usuarios en la red que han llegado al blog para escribir obscenidades, así que la moderación se hace necesaria. Recuerda utilizar un lenguaje correcto y espera a que sea aprobado.

Si necesitas publicar código haz click en "Conversión" para hacerlo legible.
ConversiónConversión EmoticonEmoticon