¿Como enviar datos de un JFrame a otro JFrame?

publicado por: Anonymous

Estoy creando una aplicación en java en la cual tengo varios formularios JFrame creados, y tengo un arraylist en el jframe principal, los demás jframe tienen que rellenar este arraylist, el problema es que no se como enviar los datos de uno a otro

Aqui esta la clase principal con el arraylist en donde debo introducir los datos

botón para llamar al método insertar para abrir un JFrame

Aquí el segundo JFrame con los datos que hay que introducir en el arraylist

Aquí el segundo JFrame con los datos que hay que introducir en el arraylist

solución

Es muy sencillo, solamente tiene que acceder al objeto instanciado (primerJFrame) vendiéndoselo a través de constructor, y mediante getters, abastecerte de la información. No se si esa información pertenece a los atributos de un objeto, pero deberías crear el objeto en el segundo JFrame para posteriormente pasártelo a través de un getter del Array.

Ventana 1

//Ventana principal
public class Ventana1 extends JFrame{

    ArrayList<Object> elementos = new ArrayList<Object>();

    //Evento que lanza la ventana con el formulario
    private void btnFormularioActionPerformed(ActionEvent ev){
        Ventana2 ventana2 = new Ventana2(this);
        ventana2.setVisible(true);
    }

    //Accede al array list
    public ArrayList<Object> getArrayList(){
        return elementos;
    }
}

VENTANA 2

//Ventana de formulario
public class Ventana2 extends JFrame{

    private Ventana1 v1;

    //Recibe por parametro la JFrame padre
    public Ventana2(Veenata1 parent){
        this.v1 = parent;
    }
    //Crea objeto con los campos relleno
    public Object getObject(){
        return new Object(txtField1.getText(), txtField2.getText(), ...);
    }
    //Evento que añade el objeto creado o datos al arraylist de la ventana 1
    private void btnGuardarActionPerformed(ActionEvent ev){
        v1.getArrayList().add(getObject());
   }
}
Respondido por: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *