Foros del Web » Programación para mayores de 30 ;) » Java »

pasar un ArrayList de una clase a otra

Estas en el tema de pasar un ArrayList de una clase a otra en el foro de Java en Foros del Web. Hola a todos, queria pediros ayuda, a ver si es posible. Quizás sea una tonteria pero no consigo hacerlo. Tengo una clase(una ventana JDialog) BuscarEmpresa ...
  #1 (permalink)  
Antiguo 29/06/2010, 06:28
 
Fecha de Ingreso: junio-2010
Mensajes: 44
Antigüedad: 13 años, 9 meses
Puntos: 0
pasar un ArrayList de una clase a otra

Hola a todos,

queria pediros ayuda, a ver si es posible. Quizás sea una tonteria pero no consigo hacerlo.

Tengo una clase(una ventana JDialog) BuscarEmpresa que lo que hace es simplemente mostrar una ventanita donde hay un jtextfield y un boton aceptar. Quiero que al poner el nombre de la empresa en el jtextfield, me haga una consulta que me de todos los trabajdores de dicha empresa y me guarde los trabajadores en un arrayList.
Hasta ahi todo lo tengo controlado.

Ahora el problema es que quiero que cuando apriete al boton aceptar de esa clase, se cierre la ventana de buscarEmpresa de mi aplicacion, y en la ventana padre, hay una tabla y quiero mostrar los datos en la tabla.
Ya se como meter los datos, pero el problema es que no consigo pasar el ArrayList de la clase buscarEmpresa a la clase trabajadores...

Esto es lo que tengo y lo que hago:

VENTANA PRINCIPAL(donde hay una opcion que es buscar por empresa y se me abre una nueva ventana BUSCAREMPRESA.)
En esta VENTANA PRINCIPAL, tengo el motodo:

Cita:
class Trabajadores ...{
BuscarEmpresa te; // ME CREO UN OBJETO DE LA CLASE DONDE BUSCAR POR EMPRESA PARA PODER LLAMAR AL METODO QUE ME DEVUELVA EL ARRAY CON LOS TRABAJADORES
ArrayList lista.....
...constructor..bla bla...

public void recibe_trabajadores_por_empresa(){
lista = te.devuelveTrabajadores(); // me guardo el arraylist que recibo de la
otra clase en otro array de esta clase.
//a continuacion hago otras cosas.

}


}
En buscar empresa, que es la nueva ventana donde pongo la empresa en el jtextfield:

Cita:
public class BuscarEmpresa extends javax.swing.JDialog{
Trabajadores tra; // ME CREO UN OBJETO TRABAJADORES PARA LLAMAR AL
METODO
...constructor blablabla

public ArrayList<empleados> devuelveTrabajadores(){
//hago las consultas y devuelvo un ArrayList

}

public void jButton1ActionPerformed(java.awt.event.ActionEvent evt){
tra.recibe_trabajadores_por_empresa(); //ESTO ES LO QUE FALLA
dispose();
}

}
En teoria, cuando apriete al boton aceptar, llamara a recibe_trabajadores_por_empresa() de la otra clase, y este metodo, dentro, hace un lista = te.devuelveTrabajadores(); por lo que llama al metodo que le tendria que devolver la lista...pero falla al invocar el primer metodo dentro de la clase boton.


Como se haria?
  #2 (permalink)  
Antiguo 01/07/2010, 02:17
 
Fecha de Ingreso: junio-2010
Mensajes: 44
Antigüedad: 13 años, 9 meses
Puntos: 0
Respuesta: pasar un ArrayList de una clase a otra

alguna idea por favor?
  #3 (permalink)  
Antiguo 01/07/2010, 02:51
Avatar de Fuzzylog  
Fecha de Ingreso: agosto-2008
Ubicación: En internet
Mensajes: 2.511
Antigüedad: 15 años, 8 meses
Puntos: 188
Respuesta: pasar un ArrayList de una clase a otra

Para llamar a ese método tienes que enviarle como parámetro el objeto -> te, que si te fijas lo llama internamente. El método no sabe que tienes el objeto creado si no se lo pasas como parámetro, por eso te da el error.
  #4 (permalink)  
Antiguo 01/07/2010, 04:05
 
Fecha de Ingreso: junio-2010
Mensajes: 44
Antigüedad: 13 años, 9 meses
Puntos: 0
Respuesta: pasar un ArrayList de una clase a otra

Cita:
Iniciado por Fuzzylog Ver Mensaje
Para llamar a ese método tienes que enviarle como parámetro el objeto -> te, que si te fijas lo llama internamente. El método no sabe que tienes el objeto creado si no se lo pasas como parámetro, por eso te da el error.

te refieres a este metodo?
tra.recibe_trabajadores_por_empresa(); //es el que falla

Pero "te" es un objeto que he creado en la otra clase, no puedo pasarselo, ademas de que recibe_trabajadores_por_empresa() no recibe nada...y aunque pusiera que recibiera, es lo que te digo...te esta en la otra clase. fijate en el codigo.
Alomejor tienes razon, pero quizas no te he entendido
  #5 (permalink)  
Antiguo 01/07/2010, 05:09
Avatar de Fuzzylog  
Fecha de Ingreso: agosto-2008
Ubicación: En internet
Mensajes: 2.511
Antigüedad: 15 años, 8 meses
Puntos: 188
Respuesta: pasar un ArrayList de una clase a otra

lista = te.devuelveTrabajadores(); -> Para que esto funcione el método debe reconocer el objeto te. Si no lo has declarado antes debes crearlo.

Pero mejor será que pongas la traza del error que te da, para poder ver exactamente que es lo que no funciona...
  #6 (permalink)  
Antiguo 01/07/2010, 10:07
 
Fecha de Ingreso: junio-2010
Mensajes: 44
Antigüedad: 13 años, 9 meses
Puntos: 0
Respuesta: pasar un ArrayList de una clase a otra

Si, el objeto te si que lo tengo creado, en el mensaje de arriba con el codigo lo puedes ver. me falla en la ejecucion, no en compilacion.

repito por si me he explicado mal(muy posible ^^) Lo que tengo es una ventana hija, donde tengo que introducir una cadena en un jtextfield y cuando le de a aceptar, que busque en una bb.dd dicha cadena y el resultado que guardare en un arrayList, lo quiero mandar a otra clase, a la ventana padre vamos, que es la que aparece cuando se cierra la otra al darle a aceptar.

Cita:
class Trabajadores ...{
BuscarEmpresa te; // ME CREO UN OBJETO DE LA CLASE DONDE BUSCAR POR EMPRESA PARA PODER LLAMAR AL METODO QUE ME DEVUELVA EL ARRAY CON LOS TRABAJADORES
ArrayList lista = new...

public void recibe_trabajadores_por_empresa(){
lista = te.devuelveTrabajadores(); // me guardo el arraylist que recibo de la
otra clase en otro array de esta clase.
//a continuacion hago otras cosas.

}

}
Como puedes ver aqui arriba, ahi tengo creado el objeto "te" que me sirve para poder llamar a "devuelveTrabajadores()" que esta en la clase BuscarEmpresa.
Y aqui abajo, en la otra clase, me creo el objeto tra, para poder llamar a "recibe_trabajadores_por_empresa()" que recibira el arrayList.



Y la otra clase:
Cita:
public class BuscarEmpresa extends javax.swing.JDialog{
Trabajadores tra; // ME CREO UN OBJETO TRABAJADORES PARA LLAMAR AL
METODO

public ArrayList<empleados> devuelveTrabajadores(){
//hago las consultas y devuelvo un ArrayList

}

public void jButton1ActionPerformed(java.awt.event.ActionEvent evt){
tra.recibe_trabajadores_por_empresa(); //ESTO ES LO QUE FALLA
dispose();
}

}
La traza seria: AL APRETAR BOTON, LLAMO A A RECIBE TRABAJADORES POR EMPRESA, QUE ENTRE OTRAS COSAS, LO QUE HACE ES LLAMAR AL METODO DE LA OTRA CLASE(donde tambien esta el metodo del boton) para que haga la consulta.

El error que me da cuando le doy a "aceptar" es:
Exception occurred during event dispatching:
Cita:
java.lang.NullPointerException
at gestion_campeonatos.BuscarEmpresa.jButton1ActionPe rformed(BuscarEmpresa.java:147)
at gestion_campeonatos.BuscarEmpresa.access$000(Busca rEmpresa.java:28)
at gestion_campeonatos.BuscarEmpresa$1.actionPerforme d(BuscarEmpresa.java:78)...
.....
.
Luego aparecen muchos mas pero son consecuencia de ese, es decir, me falla el:

public void jButton1ActionPerformed(java.awt.event.ActionEvent evt){
tra.recibe_trabajadores_por_empresa(); //ESTO ES LO QUE FALLA
dispose();
}
  #7 (permalink)  
Antiguo 02/07/2010, 03:46
Avatar de Fuzzylog  
Fecha de Ingreso: agosto-2008
Ubicación: En internet
Mensajes: 2.511
Antigüedad: 15 años, 8 meses
Puntos: 188
Respuesta: pasar un ArrayList de una clase a otra

Pues ya sabes, a hacer trazas de log para ver que objeto sobre el que estás operando te viene como null (y por eso te da el nullpointer).

Aunque me temo que el objeto tra (Trabajadores) que has creado no lo inicializaste con ningún valor, y por lo tanto lo está reconociendo como null.
  #8 (permalink)  
Antiguo 02/07/2010, 04:19
 
Fecha de Ingreso: junio-2010
Mensajes: 44
Antigüedad: 13 años, 9 meses
Puntos: 0
Respuesta: pasar un ArrayList de una clase a otra

Cita:
Iniciado por Fuzzylog Ver Mensaje
Pues ya sabes, a hacer trazas de log para ver que objeto sobre el que estás operando te viene como null (y por eso te da el nullpointer).

Aunque me temo que el objeto tra (Trabajadores) que has creado no lo inicializaste con ningún valor, y por lo tanto lo está reconociendo como null.
He depurado el codigo y si, el valor de tra me sale como null. Pero que valor le tengo que poner? Porque trabajador es una simple clase(una ventana) donde tengo uan tabla que sera donde guarde luego lo recibido. Quiero decir, que trabajador no es un objeto bean(creo que se llama asi). Tiene un constructor con los parametros
Cita:
public Trabajdores (java.awt.Frame parent, boolean modal){
super(parent,modal);
initCOmponents();
....
....
....
}
Con lo cual lo unico que se me ocurre ponerle es Trabajadores tra = new Trabajadores(null, true); ya que el null se refiere a Frame parent y el true es un boolean modal.

Joe...no lo entiendo
  #9 (permalink)  
Antiguo 02/07/2010, 06:29
Avatar de Fuzzylog  
Fecha de Ingreso: agosto-2008
Ubicación: En internet
Mensajes: 2.511
Antigüedad: 15 años, 8 meses
Puntos: 188
Respuesta: pasar un ArrayList de una clase a otra

Pero aún así no tienes algo como:

Trabajadores tra = new Trabajadores(parentFrame,booleanModal);

¿? Yo es que no me manejo bien con las UIs porque trabajo orientado a web, pero deberías inicializarlo de alguna forma. El crear el objeto no implica su inicialización.

Es como decir:

String saludo;
system.out.println(saludo);

Te da nullpointer porque crea la referencia al objeto saludo... que no existe.
  #10 (permalink)  
Antiguo 03/07/2010, 10:05
 
Fecha de Ingreso: junio-2010
Mensajes: 44
Antigüedad: 13 años, 9 meses
Puntos: 0
Respuesta: pasar un ArrayList de una clase a otra

Cita:
Iniciado por Fuzzylog Ver Mensaje
Pero aún así no tienes algo como:

Trabajadores tra = new Trabajadores(parentFrame,booleanModal);

¿? Yo es que no me manejo bien con las UIs porque trabajo orientado a web, pero deberías inicializarlo de alguna forma. El crear el objeto no implica su inicialización.

Es como decir:

String saludo;
system.out.println(saludo);

Te da nullpointer porque crea la referencia al objeto saludo... que no existe.
Ya, ya se a que te refieres. Mi constructor en la clase Trabajadores es:

Cita:
public InscribirParticipante(java.awt.Frame parent, boolean modal) {
....
...
...
}
Por lo que tendria que inicializar esos 2 valores y hacer algo como lo que has dicho
Cita:
Trabajadores tra = new Trabajadores(parentFrame,booleanModal);
El problema es que no se que ponerle en esas 2 variables...
He probado:
null y true;
null y rootPaneCheckingEnabled;
Y si aunque no me da errores, no me funciona...y nose que poner.

Alguien que sepa???
gracias
  #11 (permalink)  
Antiguo 05/07/2010, 06:28
Avatar de Fuzzylog  
Fecha de Ingreso: agosto-2008
Ubicación: En internet
Mensajes: 2.511
Antigüedad: 15 años, 8 meses
Puntos: 188
Respuesta: pasar un ArrayList de una clase a otra

Como te dije, no trabajo con interfaces de usuario.

Sin embargo: http://www.google.es/search?hl=es&so...=&oq=&gs_rfai=

El primer enlace habla de un método como initParameters() en el que primero se llama al constructor de la superclase y al método que inicializa esos parámetros, así que igual tirando por ahí lo logras.

Suerte

Etiquetas: arraylist, clase, pasar
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:37.