¿Puedes publicar la línea desde la que lanza esa excepción?
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)
Parece que tablaTickets es null en ese punto de ejecución.
Usa un debugger con un break point en esa línea.
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