Llamar ArrayList a otro Jframe

Iniciado por Arkzas, 21 Junio 2017, 05:00 AM

0 Miembros y 1 Visitante están viendo este tema.

Arkzas

Buenas, tengo una duda como llamar "x" array list que llene en Jframe.Main y me muestre los mismos datos que llene en Jframe.Copia

Ya tengo todos los datos correctamente guardados en ListaPacientes, pero al entrar a Jframe.Copia no puedo ver ningun dato guardado y no se como tomar los datos que guarde o llamar el ArrayList que ya cree


//Global en JFrame.Main
ArrayList<cls_pacientes>ListaPacientes= new ArrayList<>();
int cont=0;
int t=1;
int T=1;
final String URGENTE="urgente";


private void btnGuardarActionPerformed(java.awt.event.ActionEvent evt) {                                           

        if (i==-1 && txtprioridad.getText().equalsIgnoreCase(URGENTE)){//Comparar el texto ignorando mayus uper save mayus
                txtiquete.setText("#U"+T);
                ListaPacientes.add(0+cont,Guardar());
                T++;
                cont++;
                Limpiar();               
               
        }else if (i==-1) {
            txtiquete.setText("#N"+t);
                ListaPacientes.add(Guardar());
                t++;
                Limpiar();               
               
        }else if (i>-1 && txtprioridad.getText().equalsIgnoreCase(URGENTE)){ 
                txtiquete.setText("#U"+T);
                ListaPacientes.add(0+cont,Guardar());
                T++;
                cont++;
                Limpiar();
                i++;
        }else{
                ListaPacientes.add(Guardar());
                txtiquete.setText("#N"+t);
                i++;
                t++;
                Limpiar();
        }
       
    }



Este es el código en el que guardo en caso de ser necesario, gracias

3n31ch

#1
si quieres acceder a una variable en Copia(), (que por cierto los métodos inicial con MINUSCULA), lo puedes hacer de distintas formas, pero teniendo en cuenta que tu JFrame posee el atributo ListaPacientes y el método Copia es un método no estático de dicha clase... solo necesitas hacer lo siguiente:

Código (java) [Seleccionar]

public void copia() {
   this.ListaPacientes; // con esto ya accedes al valor... por cierto, los atributos/variables de una clase no inician en Mayus!!!
}


-

Ahora, me confunde un poco el que digas que el ArrayList lo llenaste en método Main(), ya que si te refieres al método main() (el de inicio de toda la vida), entonces dicho método es estático, por tanto solo pudiste acceder al ArrayList ya sea por que este es estático o porque instanciaste el objeto....

Arkzas

No fue en el main de inicio  :xD sry me explique mal.

tengo un jframe llamado Registro dentro de este cree el arraylist ListaPacientes, lo llene en el mismo jframe Registro con los datos que incluí.

Ahora ocupo esos mismos datos mostrarlos en otro Jframe llamado listacompleta, no tengo idea como jalar todos los datos que guarde en ListaPacientes del Jframe registro y utilizarlos para recorrer el array dentro del Jframe listacompleta.

todo esto impreso mediante Jtextfield.

creo que me explique mejor, gracias por cualquier ayuda ya no se que hacer  :-\

3n31ch

En dicho caso, si creas el segundo Frame desde el primero lo puedes hacer como lo hago en el siguiente codigo con el metodo createFrameB(), si lo estas haciendo desde otro lugar lo puedes hacer como lo hago en el metodo main().
Código (java) [Seleccionar]
private static class FrameA extends JFrame {
        private ArrayList<String> arrayListA;
        public FrameA() {
            arrayListA = new ArrayList();
            arrayListA.add("Vlue 1");
            arrayListA.add("Vlue 2");
            arrayListA.add("Vlue 3");
        }
        public ArrayList<String> getArrayListA() {
            return this.arrayListA;
        }
        private void createFrameB() {
            new FrameB(this.arrayListA).setVisible(true);
        }
    }
   
    private static class FrameB extends JFrame {
        private ArrayList<String> arrayListB;
        public FrameB(ArrayList<String> arrayListA) {
            this.arrayListB = arrayListA;
        }
    }
   
   
    public static void main(String[] args) {
        FrameA frameA = new FrameA();
        frameA.setVisible(true);
        new FrameB(frameA.getArrayListA()).setVisible(true);
    }


Omite el hecho de que las clases son private static, esto lo hice para no crear otro archivo, ya que en este momento ando sin una IDE y programar en bloc de notas es un desastre.

Dime si con eso te ayudo en algo, o si necesitas otra cosa. (Por cierto, siempre queda la opcion de hacer que el ArrayList sea estatico, pero no lo recomiendo.)

Arkzas

Si me sirvio mucho de ayuda, muchas gracias ya no tenia idea que hacer  ;-) ;-)