Ver Mensaje Individual
  #2 (permalink)  
Antiguo 16/05/2013, 13:28
Avatar de HackmanC
HackmanC
 
Fecha de Ingreso: enero-2008
Ubicación: Guatemala
Mensajes: 1.817
Antigüedad: 17 años
Puntos: 260
Sonrisa Respuesta: Comunicación de datos entre JFrame

Hola,

Cita:
Iniciado por pazovic Ver Mensaje
... Tengo una aplicación con un JFrame1 inicial que pide unos datos (datos1) sobre una especie de pez. Al darle al botón next, abre un segundo JFrame2 que pide otros datos (datos2) sobre la misma especie. Al darle al botón next, llama a un JFrame3 donde se obtienen los resultados a partir de datos1 y datos2. Al inicio del código del JFrame3, se realizan unos cálculos en Matlab (software de matemáticas) con los datos de la especie, obtenidos desde el JFrame1 y JFrame2. ...
¿Si los datos están relacionados porque no mejor utilizas un solo Frame con diferentes pestañas? Para ese objetivo existe el layout CardLayout o el componente JTabbedPane.

Cita:
Iniciado por pazovic Ver Mensaje
... ¿Se podría hacer lo que quiero hacer? ¿Cuál sería la mejor forma? ...
Como haces un dispose del objeto Frame anterior tendrías que pasar el objeto Datos entre los diferentes Frames consecutivamente, pero el objeto Datos debería de tener todo el registro completo de los datos previos. Es decir, cada Frame llena los datos que le corresponden en el objeto Datos y pasa al siguiente Frame ese objeto, por lo tanto cada vez que avance va a contener todos los datos de los Frames anteriores, en el último deberá estar lleno.

En el caso que solamente se va a presentar un solo Frame1 a la vez, es decir, no puede existir el Frame1 dos veces consecutivamente en la pantalla, y por consiguiente, tampoco los siguientes Frames; podrías recurrir al patrón Singletón en el el objeto Datos, por su naturaleza al ser static lo podrás accesar desde cualquier lugar, observando que deberás limpiar el objeto Datos al finalizar cada secuencia de operaciones, al terminar el Frame3 o al iniciar el Frame1.

La ventaja de esta última opción es que podrías crearlo de forma que avance o retroceda en los Frames sin complicaciones, adicionalmente que la programación será mucho mas sencilla. Las desventajas son que no puedes hacer dos procedimientos iguales al mismo tiempo, es decir, que no puedes tener abiertos dos Frame1 porque sobreescribirían los datos (por su naturaleza el patrón Singleton es static), y adicionalmente que no podrías accesar el objeto Singletón Datos desde dos hilos al mismo tiempo sin sincronización.

Espero que sea de alguna ayuda,

Saludos,