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

comunicacion entre objetos

Estas en el tema de comunicacion entre objetos en el foro de Java en Foros del Web. salu2 bueno lo que quiero hacer es lo siguiente: tengo 3 clases: clase1: esta contiene el main clase2: es un frame clase3: trabaja los datos ...
  #1 (permalink)  
Antiguo 20/11/2010, 15:00
 
Fecha de Ingreso: octubre-2007
Mensajes: 9
Antigüedad: 16 años, 6 meses
Puntos: 0
Pregunta comunicacion entre objetos

salu2
bueno lo que quiero hacer es lo siguiente:

tengo 3 clases:

clase1: esta contiene el main
clase2: es un frame
clase3: trabaja los datos

entonces esto funciona asi:

la clase1(main) inicializa y hace visible la clase2(frame).
la clase2 captura y envia datos a la clase1.
la clase1 envia los datos a la clase3.
la clase3 realiza alguna operacion con los datos y le
envia el resultado a la clase2(frame).

bueno el problema que tengo es que el resultado que le envio
desde la clase3 a la clase2, no se muestra en el frame.
pienso yo que es porque en la clase3 creo un nuevo objeto de la clase2,
y al enviarle el resultado, como el objeto anterior de la clase2 no se ha 'terminado', osea el frame no se ha cerrado, entonces no muestra los nuevos datos.

todo esto es a traves de funciones sin retorno de datos (void), porque
con funciones con retorno no tengo problemas, pero no es lo que tengo que hacer.

como puedo hacer que se actualice el frame inicial que muestre los nuevos datos (en un textfield, label, etc), sin tener que cerrar un frame y abrir uno nuevo.

esto es un pequeño ejemplo de mvc, en el caso de iniciar sesion.
siendo la clase2 la vista, y la clase1 y clase3 controladores (la clase3 envia y recibe datos a una clase modelo).

no estoy utilizando ningun framework, solo debo utilizar java class.

graxx
  #2 (permalink)  
Antiguo 21/11/2010, 12:55
 
Fecha de Ingreso: noviembre-2008
Mensajes: 59
Antigüedad: 15 años, 5 meses
Puntos: 1
Respuesta: comunicacion entre objetos

Bueno, creo que si pusieras algo de tu código ayudaría en la solución, pero básicamente yo lo implementaría así:

Clase 1 (Main): Crea un objeto de la clase2.
Clase2 (Ventana): Contiene un objeto de la clase3 para trabajar con los datos.
Clase3 (AdminDatos): Recibe llamadas de la clase2 y ejecuta, devolviendo valores a la clase2.

Un ejemplo sencillo, en pseudocódigo:

Código:
Main.java
-------------------
Ventana v = new Ventana();
v.setVisible(true);

Ventana.java 
---------------------
class Ventana extends JFrame

int valor = 0;
AdminDatos dat = new AdminDatos();
JPanel p = new JPanel();
JButton boton = new JButton();
JLabel etiqueta = new JLabel();
boton.setActionListener(accion);
p.add(boton);
p.add(etiqueta);
this.add(p);

ActionListener accion = new ActionListener({
valor = dat.getOne();
etiqueta.setText(valor);
})

AdminDatos.java
--------------------------
public int getOne(){
return 1;
}
Básicamente con esto estamos creando un frame con un label y un botón, al pulsar el botón se le llama a la función que nos interesa de la clase AdminDatos y el resultado se coloca en el label. Yo utilizaría retorno de datos y me olvidaría de instanciar un objeto clase2 en la clase3, ya que esto no sigue las pautas de encapsulamiento.

Última edición por napartar; 21/11/2010 a las 13:32

Etiquetas: comunicacion, objetos
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 01:53.