Buscar
Social
Ofertas laborales ES

Foro sobre Java SE > Enviar datos a otra array de otra clase

Buenas tardes,
Estoy con un proyecto para la asignatura de la carrera de ingenieria de java, por SEAS, y me encuentro con un problema, el proyecto es simplemente un programa donde tengo un jmenu en el que gestiono clientes, son 3 botones, alta cliente, edita cliente, elimina cliente.
En principio tendria que hacer, al dar alta cliente, me aparece un formulario para nombre y apellidos, y al guardar se guarda los datos en una array, pero el problema es que al clicar en editar clientes, necesito recuperar esos datos del array y meterlos en una tabla, pero me sale el error al guardar los datos, "NullPointException". Uso 3 clases para este caso, una "Alta clientes", una intermedia que guarda los datos "Datosclientes" y otra que recupera los datos "EditaCliente", pero no puedo pasar los datos de la primera a la segunda clase.
Expongo el codigo de manera resumida:


public class AccionesAltaCliente {

//VARIABLES
public FastFoodCompanyFrame frame;
public DefaultTableModel tabla;
public EditaClientes edit;
public AccionesEditaClientes aedit;
public AltaClientes panel;
public ArrayList filaCliente;
public AltaClienteDatos datos = new AltaClienteDatos();
public String nombre;
public String apellido;
public String apellido2;
public AltaClienteDatos datos2;

public void guardarCliente()
{


nombre=panel.getTxtNombre().getText();
apellido=panel.getTxtApellido1().getText();
apellido2 =panel.getTxtApellido2().getText();
filaCliente.add(panel.getTxtNombre().getText());
filaCliente.add(panel.getTxtApellido1().getText());
filaCliente.add(panel.getTxtApellido2().getText());
datos.anyadirDatos(nombre);
datos.anyadirDatos(apellido);
datos.anyadirDatos(apellido2);
datos2.setIntermedi(filaCliente); /*AQUI EL ERROR*/
}
Al clicar el boton guardar, se ejecuta el metodo guardarCliente(), en datos2.setIntermedi(filaCliente), envia la array a un setter de la Clase ClienteDatos, para que esta los guarde, pero hay es donde me da el NullPointException.

Pongo la segunda clase para si la necesitais:

package unidad3.ejemplo.mvc.datos;

import unidad3.ejemplo.mvc.controlador.AccionesAltaCliente;
import java.util.ArrayList;
import java.util.Vector;
import unidad3.ejemplo.mvc.controlador.AccionesEditaClientes;
import unidad3.ejemplo.mvc.vista.EditaClientes;
/**
*
* @author FANTASYGAMES
*/
public class AltaClienteDatos
{
public AccionesAltaCliente aac;
public ArrayList Dat = new ArrayList();
public ArrayList DatosClientes;
public AccionesEditaClientes edita;
public Vector datt = new Vector();
/**
*
*/
public ArrayList intermedi;
/**
*
*/
public ArrayList alta;

public AltaClienteDatos() {
this.alta = new ArrayList();

}

public void setAlta(ArrayList alta) {
this.alta = alta;
}

public AltaClienteDatos(AccionesEditaClientes edita)
{
this.edita = edita;
}

public void setIntermedi(ArrayList intermedi) {
this.intermedi = intermedi;
}

public ArrayList getIntermedi() {
return intermedi;
}
public ArrayList getAlta() {
// System.out.println(datt+"get");
return this.alta;
}
}

Este es el error que me tira:

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException


Muchas gracias de antemano.

noviembre 4, 2013 | Unregistered CommenterSergi

Nunca inicializas
public ArrayList intermedi;
por lo que siempre es null.

noviembre 4, 2013 | Registered Commenterchoces

lo he inicializado y nada, el problema esque el array no se me queda guardado en la clase clientedatos, se guarda en el momento que clico el boton guardar pero despues se borra

noviembre 5, 2013 | Unregistered CommenterSergi

Tampoco veo que ese datos2 se inicialice en algún sitio.

noviembre 5, 2013 | Registered Commenterchoces

public AltaClienteDatos datos2 = new AltaClienteDatos();

y nada..

noviembre 5, 2013 | Unregistered CommenterSergi

El código que has publicado no se puede ni compilar ni depurar.
Te sugiero que, o bien lo publiques completo, o uses un debugger.

noviembre 5, 2013 | Registered Commenterchoces

Te digo sin analizar mucho tu codigo y con base en lo que te pide, mejor utiliza ArrayList()
o sino List nada mas, podes recuperar con get() los datos y un for each es mas util que crear un metodo para tus array
Saludos

noviembre 5, 2013 | Unregistered CommenterIvan Salas