Ver Mensaje Individual
  #1 (permalink)  
Antiguo 17/01/2008, 06:30
Livingstone2
 
Fecha de Ingreso: enero-2008
Mensajes: 6
Antigüedad: 16 años, 3 meses
Puntos: 0
Problemas con getUserObject dentro del JTree

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