Buscar
Social
Ofertas laborales ES

Foro sobre Java SE > Paso de parametros al vuelo

Estimados amigo reciban un saludo
Soy nuevo en java y he comenzado furo con este maravilloso lenguaje de programación y tengo dudas con el paso de parametros entre aplicaciones jinternalFrame.
Hice dos formulario de pruebas y la idea es regresar del formulario hijo dos parametros al formulario padre, menciono que cuando ejecuto el formulario padre sin cerrarlo abro al hijo y cuando pulso el boton cierra el hijo y manda los parametros al padre.

Pero aquí mi duda logre hacerlo pero porque los label y texto no se actualizaron utilizo netbeans 8

anexo el código para mejor entendimiento

//Clase de parametros
class parametros{
private int clave;
private String nombre;

//Constructor
public parametros(int clave, String Nombre){
this.clave=clave;
this.nombre=nombre;
}

//getter and setter
}

//FORMULARIO PADRE
class frmPadre extends JFrame{

//contructor que crea a venta que es un jinternal frame
public fmrPadre(){
inicializacomponentes();

setTitle("Formulario Padre");
}

//Sobre carga del contructor para recibir parametros
frmPadre(parametros p){
inicializacomponentes();
lblCodigo.setText(p.getClave);
txtNombre.setText(p.getNombre);

}

//evetos maint y clic etc
}

//NOTA EL FORMULARIO HIJO SE EJECUTA SOBRE EL PADRE SIN CERRAR AL MENSIONADO
//FORMULARIO HIJO
class frmHijo extends JFrame{
//Contructor
public frmHijo(){
inicializacomponentes();
}

//eventos maint y demas

//Funcion que regresa el parametro al padre.
private void retorna(){
parametros pa = new parametros();
pa.setClave(2456);
pa.setNombre("Nombre de prueba");

frmPadre f = new frmPadre(pa); //MANDO EL PARAMETRO AL FORMULARIO PADRE EN EJECUCION
this.dispose(); //CIERRO EL FORMULARIO HIJO
}
}


bien con este ejemplo que trato de explicar funciona pero no como se debe ya que si bien el formulario padre recibe los parametros no puedo hacer que los label y text se actualicen en tiempo de ejecucion.

ya hice un rapaint() en el los label y txt asi como su contenedo y terminado en el formulario o bien un repaint general que entoria deberia de funcionar pero no es asi no me deja

Nota estoy utilizando netbeans 8

noviembre 13, 2014 | Registered Commenterenrique

Hola Enrique. Seria mejor si postearas todo el codigo de tu programa para poderlo analizar completo. De todas formas te hago algunos comentarios a ver si puedo ayudarte:

1) Por que ambos formularios heredan de JFrame? Creo que seria mejor crear el padre como JFrame y el hijo como un JDialog lanzado desde el JFrame.

2) Estas utilizando correctamente el hilo grafico de swing para crear tu interfaz grafica?

3) Si primero creas una instancia del padre y luego desde esa instancia muestras el hijo, por que al cerrar el hijo creas una nueva instancia del padre??

Para pasar los datos del hijo al padre, yo personalmente usaria un metodo de callback que sera invocado justo antes de cerrar el hijo, de la siguiente forma:

- Definir en la clase hijo una interfaz que tenga el metodo encargado de actualizar los datos y reciba como argumento el objeto "Parametros".

- Hacer que la clase padre implemente la interfaz y a su vez defina el codigo de implementacion del metodo.

- Crear en la clase hijo un miembro del tipo de la interfaz y un constructor que reciba como argumento una referencia a la clase padre que sera del tipo de la interfaz, para asignarla a este miembro.

- Por ultimo, donde implementes el codigo que cierra el hijo simplemente invocas el metodo y le pasas los datos para que se actualicen.

Espero haber sido claro en la explicacion. Cualquier cosa me avisas.
Saludos.

noviembre 15, 2014 | Registered Commenteralaguslaz