Hola foreros, tengo un Jtree que al clickear sobre una hoja me debería mostrar cierta información. Para controlar cuando selecciono una hoja tengo:
Código:
private class Escuchador implements TreeSelectionListener{
public void valueChanged(TreeSelectionEvent e) {
DefaultMutableTreeNode dmtn=(DefaultMutableTreeNode) jTree.getLastSelectedPathComponent();
if(dmtn==null){
return;
}
Object objeto=dmtn.getUserObject();
if(dmtn.isLeaf()){
NodoNuevo nodoNuevo=(NodoNuevo)objeto;
…
La clase NodoNuevo es algo así:
Código:
private class NodoNuevo{
private String nombre;
private Object objeto;
public NodoNuevo(String nombre,Object objeto){
this.nombre=nombre;
this.objeto=objeto;
}
….
Y cuando creo el DefaultMutableTreeNode del árbol lo hago de esta manera:
Código:
NodoNuevo nodoNuevo=new NodoNuevo(“Cuadrupedos”,new Perro());
nodo=new DefaultMutableTreeNode(nodoNuevo.getNombre());
La aplicación me salta con el error: Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException: java.lang.String cannot be cast to X$NodoNuevo al seleccionar en el árbol una hoja. Y me dice que el fallo está dentro de la clase Escuchador en la línea:
Código:
NodoNuevo nodoNuevo=(NodoNuevo)objeto;
Por que me dice que me devuelve un String si recupera un Object con getUserObject() y lo convierto a NodoNuevo con la línea del error.
Gracias