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

Expertos!! patron Observer

Estas en el tema de Expertos!! patron Observer en el foro de Java en Foros del Web. Intentaré explicar. Tengo 2 jFrame. Uno de ellos se llama "principal" y en el hay un botón y un textBox El otro se llama "secundario" ...
  #1 (permalink)  
Antiguo 21/11/2013, 19:29
ilu7ionHD
Invitado
 
Mensajes: n/a
Puntos:
Expertos!! patron Observer

Intentaré explicar.
Tengo 2 jFrame.
Uno de ellos se llama "principal" y en el hay un botón y un textBox
El otro se llama "secundario" y es una lista.
La idea es la siguiente: en el textBox del primero jframe, se ingresa un número y al hacer clic en el botón se actualiza la base de datos, modificando así el valor actual. Por ejemplo si base de datos se encuentra el número 100 y yo ingreso el número 10, se debe actualizar y decir 90 (se restan).
La idea es aplicar el patrón OBSERVER, al ingresar un valor y actualizar, que se detecte eso, y el jframe "secundario" se actualize la lista.
AYUDA!!!!!!!!!!!
  #2 (permalink)  
Antiguo 22/11/2013, 02:34
Avatar de Xerelo  
Fecha de Ingreso: mayo-2009
Mensajes: 2.175
Antigüedad: 15 años, 6 meses
Puntos: 306
Respuesta: Expertos!! patron Observer

No es mi fuerte, pero juraría que ese es el comportamiento normal de los botones.

Pulsas un botón que lanza un evento y en el listener haces la actualización.
__________________
Cada vez que solucionas los problemas de alguien que no se esfuerza, piensa en que el día de mañana puede llegar a ser tu compañero de trabajo, o peor, tu jefe.
  #3 (permalink)  
Antiguo 22/11/2013, 04:13
ilu7ionHD
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Expertos!! patron Observer

Si lo se, eso es lo normal. Pero aquí (para complicarme) debo aplicar (según mi profesor) el patrón observer
  #4 (permalink)  
Antiguo 22/11/2013, 04:32
Avatar de Xerelo  
Fecha de Ingreso: mayo-2009
Mensajes: 2.175
Antigüedad: 15 años, 6 meses
Puntos: 306
Respuesta: Expertos!! patron Observer

No me he explicado bien, event/listener es una implementación del patrón Observer.

http://stackoverflow.com/questions/3...n-vs-listeners

No creo que tu profesor te esté pidiendo que crees tu propia implementación de observer, pero si es así lo único que tienes que hacer es crearte un event y un listener.

http://castever.wordpress.com/2008/0...vents-in-java/
__________________
Cada vez que solucionas los problemas de alguien que no se esfuerza, piensa en que el día de mañana puede llegar a ser tu compañero de trabajo, o peor, tu jefe.
  #5 (permalink)  
Antiguo 22/11/2013, 06:48
ilu7ionHD
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Expertos!! patron Observer

Lo tengo que solucionar así:
En una clase debo colocar extends Observable y en el jframe implements Observer
Luego en el jframe (implements Observer) debo hacer obviamente el update (que en mi caso simplemente va actualizarlas listas).
Y en el caso de la clase (extends Observable) coloque :

public void setEdad(int pEdad)
{
this.Edad = 0;
this.Edad = pEdad;
setChanged();
notifyObservers();
}
Luego en la clase main inicialize el obj.
ClaseObservador observador = new ClaseObservador();
JF_Secundario JF_S = new JF_Secundario(observador);
observador.addObserver(JF_S);
JF_S.setVisible(true);
+....+

Pero no me funciona, no implemente nada, todo lo que hice lo coloque aquí,ayudame amigo :( ayer ni dormi necesito terminarlo
  #6 (permalink)  
Antiguo 22/11/2013, 07:22
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 20 años, 1 mes
Puntos: 454
Respuesta: Expertos!! patron Observer

¿Y dónde llamas a setEdad()?

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #7 (permalink)  
Antiguo 22/11/2013, 07:31
ilu7ionHD
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Expertos!! patron Observer

En el jframe "primario" es donde lo llamo.
O sea al ingresar la nueva edad, y dar clc en el botón puce este codigo

ClaseObservador cOb = new ClaseObservador();
// cOb.notifyObservers();
cOb.setLitrosExp(Iexp);
Lo que esta en // eran pruebas que estaba haciendo ajjajaja

Ninguna funciona, que me falta? ayuda:(
  #8 (permalink)  
Antiguo 22/11/2013, 16:28
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 20 años, 1 mes
Puntos: 454
Respuesta: Expertos!! patron Observer

Estas haciendo dos new de ClaseObservador, aquí

ClaseObservador observador = new ClaseObservador();
JF_Secundario JF_S = new JF_Secundario(observador);
observador.addObserver(JF_S);
JF_S.setVisible(true);

y aquí

ClaseObservador cOb = new ClaseObservador();
// cOb.notifyObservers();
cOb.setLitrosExp(Iexp);


Si te suscribes a una (observador) y no le pasas el dato a esa instancia (observador), no avisa al que se ha suscrito.

Si no te suscribes a la otra (cOb), y le pasas el dato a esa otra (cOb), no tiene a nadie a quien avisar.

Debes hacer un solo new y pasarle esas instancia al jframe primario para que la use, en vez de hacer su propio new.

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #9 (permalink)  
Antiguo 23/11/2013, 07:37
ilu7ionHD
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Expertos!! patron Observer

Mil gracias amigo, ya lo había solucionado, te cuento lo que hice (en si es lo que dijistes):
en el frame "principal" cree esto:
final static ClaseObservador observador = new ClaseObservador();
y en su constructor:
public JF_Principal() {

JF_Secundario JF_Sec = new JF_Secundario(observador);
observador.addObserver(JF_Sec);
observador.addObserver(this);
JF_Sec.setVisible(true);
Cada vez que preciso el observador hago JF_Principal.observador ya que es statico :D :D será un mamarracho pero funciona ajjajaja

Etiquetas: expertos, patron
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 09:11.