Buscar
Social
Ofertas laborales ES

Foro sobre Java SE > Ayuda con envío y recepción de variables entre Formularios

Hola a todos, necesito por favor que alguien pueda explicarme por favor cómo puedo recuperar el valor de un TextField o de una variable que está en un formulario (frmForm1) en otro formulario(frmForm2) pero ANTES que el formulario 2 se visualice en pantalla. Lo que requiero es recuperar el valor de frmForm1 para que antes que se abra la ventana de frmForm2, pueda configurar un Menú según el parámetro que está en frmForm1. Estaré muy agradecido por su ayuda, gracias.

agosto 15, 2015 | Registered Commenterkallicho

Hola, una forma de hacerlo es crear un atributo de tipo frmForm1 en el fromForm2 y en el constructor del frmForm2 inicias ese atributo con el frmForm1 que ya tienes. Algo así:


la clase formulario1

public class frmForm1 extends JFrame{
...
public String getTextoCampo(){
return campoTexto.getText();
}
...
}

la clase formulario2

public class frmForm2 extends JFrame{
public frmForm1 formulario1;
...
public frmForm2(frmForm1 f1){
formulario1=f1;
...
}

public void alPulsarUnBoton(){
String texto=formulario1.getTextoCampo();
...
}
...
}

la clase principal

public class Test{
public static void main(String[] arg){
frmForm1 formulario1=new frmForm1();
frmForm2 formulario2=new frmForm2(formulario1);

Esta puede ser una de las formas, crear una instancia de uno de los formularios en el otro.

si te fijas en la clase del frmForm2 tenemos un objeto del tipo del frm1Form. Y en la clase principal pues el objeto del formulario2 se crea tras crear el formulario1.

Bueno échale un ojo a ver si lo entiendes, sino pues comenta.

Pero para lo que tu quieres hacer, lo mejor es usar un archivo de propiedades, los archivos de propiedades, son archivos donde se almacena unos pares de nombre y valor algo así:

mensaje=hola
numero=5
opcion=true

tras crear el archivo, mediante un objeto Properties:


Properties prop=new Properties();
prop.load(new FileReader("ruta del fichero"));


y con los métodos setProperty(nombrePropiedad,valor); y String get(nombrePropiedad) puedes fácilmente leer y escribir valores entre clases.

agosto 16, 2015 | Registered Commenterloderain

Hola.

las opciones que te dio @loderain creo que te vale para lo que tenes que hacer.

pero existe otras opciones como usar el patrón de diseño observador.
me reservo la explicación y te dejo los links que lo explican mejor que yo:

Que es el patrón observador
https://es.wikipedia.org/wiki/Observer_(patr%C3%B3n_de_dise%C3%B1o)

Implementaciones en java:
http://codejavu.blogspot.com/2013/06/ejemplo-patron-observer.html
http://jonathanmelgoza.com/blog/observadores-en-java/
http://migranitodejava.blogspot.com/2011/06/observer.html

saludos.

agosto 20, 2015 | Registered Commenterjhosep