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