Foros del Web » Programación para mayores de 30 ;) » Java »

No se llama a update cuando se hace un setChange()

Estas en el tema de No se llama a update cuando se hace un setChange() en el foro de Java en Foros del Web. Hola a todos, el problema que tengo es sencillo, pero no se si es un problema mio o bien de Java, cuando realizo un setChanged ...
  #1 (permalink)  
Antiguo 25/03/2011, 08:27
 
Fecha de Ingreso: junio-2009
Mensajes: 65
Antigüedad: 14 años, 10 meses
Puntos: 0
No se llama a update cuando se hace un setChange()

Hola a todos, el problema que tengo es sencillo, pero no se si es un problema mio o bien de Java, cuando realizo un setChanged para que todos mis observadores se enteren, no se llama al metodo update del observador, y solamente se llama en la 2º llamada, es decir, cuando se puede hacer el notify y otra vez un setChanged.

No entiendo por que esta ocurriendo esto, y no es en la primera llamada cuando debe de funcionar bien, quizás esto me este pasando a mi sólo, o es un problema de Java con los observadores, supongo que estaré haciendo algo mal. Os pongo el código:

Código:
public void addGrupo_Punto(Componente pp) {
			// Primero buscamos si se encuentra ya dado de alta, para ponerlo a True, y si no se añade.
			Iterator <Componente> it = this.lC_Group_Punto.iterator();
			while (it.hasNext()){
				Componente c = it.next();
				if (pp.getGrupo().equals(c.getGrupo()) && pp.getNombreComponente().equals(c.getNombreComponente()) && !(c.isEstado())){
					c.setEstado(true);
					// Hacemos una notificación a quien nos observan
					notifyObservers(Constantes.GRUPO_PUNTO);
					setChanged();
					return;
				}
			}
			// Entonces no se ha encontrado.
			this.lC_Group_Punto.add(pp);
			// Hacemos una notificación a quien nos observan
			notifyObservers(Constantes.GRUPO_PUNTO);
			setChanged();
			System.out.println("Hemos realizado la notificación");
		}
Y este es el update del observador:

Código:
public void update(Observable ob, Object o) {
		System.out.println("Se actualiza");
		if (ob != null){
			InfoPanel i = (InfoPanel)ob;

			this.infoArrival.setText(i.toStringHTML_Arrival());
			this.infoDeparture.setText(i.toStringHTML_Departure());
			this.infoTerminal.setText(i.toStringHTML_Terminal());
			this.infoPunto.setText(i.toStringHTML_Punto());
		}
	}
A ver si alguien me puede ayudar o como puedo solucionar esto por que he estado buscando algo por internet que le haya pasado a alguien similar y no he encontrado nada...

Muchas gracias a todos!
  #2 (permalink)  
Antiguo 26/03/2011, 14:22
 
Fecha de Ingreso: junio-2009
Mensajes: 65
Antigüedad: 14 años, 10 meses
Puntos: 0
Respuesta: No se llama a update cuando se hace un setChange()

¿Alguien que me pueda decir algo?

Etiquetas: llama, update
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:09.