Buscar
Social
Ofertas laborales ES

Foro sobre Java SE > Problema NullPointerException

Buenas, tengo 2 clases, en una tengo un metodo y en la otra llamo dicho metodo al pulsar un boton, el problema es que me da un nullPointException, no se porque ya que lo inicializo todo, y el metodo va bien ya que si lo llamo dentro de la misma clase funciona, pongo el codigo de las 2 clases:

Clase A: El metodo que necesito es actualizarTablaTickets()

public class accionTickets {

private DefaultTableModel tablaTickets;// = new DefaultTableModel(new String[]{"ID","FECHA","IMPORTE","ELIMINAR"},0);
public V_frame v_frame;
public bdtickets bdt;
public Vector tickets;
public ResultSet resultado;

public accionTickets(V_frame principal) throws SQLException, ClassNotFoundException, InstantiationException, IllegalAccessException
{
bdt = new bdtickets();
this.v_frame=principal;
this.cargarTickets();
try {
this.llenarTickets();
} catch (InstantiationException ex) {
Logger.getLogger(accionTickets.class.getName()).log(Level.SEVERE, null, ex);
} catch (IllegalAccessException ex) {
Logger.getLogger(accionTickets.class.getName()).log(Level.SEVERE, null, ex);
}
this.actualizarTablaTickets();
}

public accionTickets() {

}

public void cargarTickets()
{
this.tablaTickets = new DefaultTableModel(new String[]{"ID","FECHA","IMPORTE","ELIMINAR"},0);
v_frame.getTblTickets().setModel(tablaTickets);

}
public void llenarTickets() throws SQLException, ClassNotFoundException, InstantiationException, IllegalAccessException
{
ResultSet resultado=null;
String nombreBoton;

resultado = bdt.consultarTickets();

while (resultado.next())
{
nombreBoton = resultado.getString("ID");
JButton BtEliminar = new JButton(nombreBoton);
tickets = new Vector();
tickets.addElement(resultado.getString("ID"));
tickets.addElement(resultado.getString("FECHA"));
tickets.addElement(resultado.getString("IMPORTE"));
tickets.addElement(BtEliminar);
tablaTickets.addRow(tickets);
}
} //ESTE ES EL METODO QUE NECESITO LLAMAR EN LA CLASE B
public void actualizarTablaTickets() throws SQLException, ClassNotFoundException, InstantiationException, IllegalAccessException
{
int tamañoTabla = tablaTickets.getRowCount();
{
for (int i = tamañoTabla-1; i >=0; i--)
{
System.out.print(i+" ");
tablaTickets.removeRow(i);
}
}
llenarTickets();
}

}

CLASE B;

import java.io.IOException;
import java.sql.SQLException;
import java.util.logging.Level;
import java.util.logging.Logger;
import verduleria.aplicacion.V_frame;
import verduleria.bdprincipal.bdtickets;
import verduleria.controlador.accionTickets;

public class TicketDiario extends javax.swing.JFrame {

/**
* Creates new form TicketDiario
*/
private V_frame principal;
private bdtickets bd;
public accionTickets acciontickets;

public TicketDiario() {
initComponents();
this.setLocationRelativeTo(null);
}

private void JBGuardarTicketActionPerformed(java.awt.event.ActionEvent evt) {
try {
acciontickets = new accionTickets();

bd = new bdtickets();
String importe = JTImporte.getText();
String fecha = JTFecha.getText();
bd.InsertarTicket(fecha, importe);
acciontickets.actualizarTablaTickets();//AQUI LLAMO AL METODO

} catch (SQLException | ClassNotFoundException | InstantiationException | IllegalAccessException ex) {
Logger.getLogger(TicketDiario.class.getName()).log(Level.SEVERE, null, ex);
}
}


}

Cuando llamo al metodo me da el null pint exception, las primeras linias me da el error en int tamañoTabla = tablaTickets.getRowCount(); de la clase A y despues en la llamada del metodo en la clase B.

A ver si alguien me puede ayudar, estoy ofuscado xD

septiembre 26, 2016 | Unregistered Commentersergi

¿Puedes publicar la línea desde la que lanza esa excepción?

septiembre 27, 2016 | Registered Commenterchoces

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at verduleria.controlador.accionTickets.actualizarTablaTickets(accionTickets.java:81) //int tamañoTabla = tablaTickets.getRowCount(); ¨JUSTO AQUI ME DA EL PRIMER ERROR
at verduleria.vista.TicketDiario.JBGuardarTicketActionPerformed(TicketDiario.java:131)
at verduleria.vista.TicketDiario.access$000(TicketDiario.java:19)
at verduleria.vista.TicketDiario$1.actionPerformed(TicketDiario.java:56)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)

septiembre 27, 2016 | Unregistered Commentersergi

Parece que tablaTickets es null en ese punto de ejecución.
Usa un debugger con un break point en esa línea.

septiembre 27, 2016 | Registered Commenterchoces