0

Estoy recién aprendiendo sobre programación en frames y pues al momento de hacer un Jframe y mostrar la información como en esta imagen, me aparece un error en el Output de NetBeans frame creado

Lo que más me sorprende es que se muestre correctamente la tabla si justo donde me da el error es al momento de mostrar la tabla, según reviso los errores que me bota Netbeans

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at Clases.DTC.Mostrar(DTC.java:70)
at Frames.frmDTC.btnAnadirActionPerformed(frmDTC.java:271)
at Frames.frmDTC.access$500(frmDTC.java:17)
at Frames.frmDTC$6.actionPerformed(frmDTC.java:129)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2348)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
at java.awt.Component.processMouseEvent(Component.java:6533)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3324)
at java.awt.Component.processEvent(Component.java:6298)
at java.awt.Container.processEvent(Container.java:2236)
at java.awt.Component.dispatchEventImpl(Component.java:4889)
at java.awt.Container.dispatchEventImpl(Container.java:2294)
at java.awt.Component.dispatchEvent(Component.java:4711)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4888)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4525)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4466)
at java.awt.Container.dispatchEventImpl(Container.java:2280)
at java.awt.Window.dispatchEventImpl(Window.java:2746)
at java.awt.Component.dispatchEvent(Component.java:4711)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
at java.awt.EventQueue.access$500(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.awt.EventQueue$3.run(EventQueue.java:703)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
at java.awt.EventQueue$4.run(EventQueue.java:731)
at java.awt.EventQueue$4.run(EventQueue.java:729)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)

el código donde muestra el primer error es el siguiente

public void Mostrar(DefaultTableModel ModeloDTC, DTC d[]) {
    if (ModeloDTC.getRowCount() != 0){
        limpiarTabla(ModeloDTC);
    }
    for (int i = 0; i < d.length; i++) {
        ModeloDTC.addRow(new Object[]{
            d[i].getCedula(),
            d[i].getNombre(),
            d[i].Fecha_Nac.getDia(),
            d[i].Fecha_Nac.getMes(),
            d[i].Fecha_Nac.getAño(),
            d[i].getTitulo(),
            d[i].getSueldo(),
            d[i].getHorasClase(),
            IESS(d[i].getSueldo()),
            SueldoPag(d[i].getSueldo())
        });
    }
}

el segundo donde redirige el error es

try {
        Fecha f = new Fecha(Integer.parseInt(txtDia.getText()),
                Integer.parseInt(txtMes.getText()),
                Integer.parseInt(txtAnio.getText()));
        d[i] = new DTC(Integer.parseInt(txtHorasClase.getText()),
                cbnTitulo.getSelectedItem().toString(),
                Double.parseDouble(txtSueldo.getText()),
                txtCedula.getText(), txtNombre.getText(),
                f);
        i++;
        DTC d1 = new DTC();
        d1.Mostrar(modeloDTC, d);

    } catch (ArrayIndexOutOfBoundsException e) {
        JOptionPane.showMessageDialog(null, "Vector Lleno");
        DTC d1 = new DTC();
        d1.Mostrar(modeloDTC, d);
    }

}                            

y los otros son los que crea el netbeans por defecto al crear las cosas visuales

si me ayudan solucionando la duda porqué el mensaje de error les agradecería un montón

psdt: gracias a la persona que me reedirigió a la pregunta de cual es la solución a todos los errores de NullPointerException... se que ese error se da porque existe un objeto nulo pero aunque parezca algo raro, no quiero solucionar el error... solo quiero saber porque se da el error y no volverlo a cometer en otros proyectos futuros...

si quieren ver el proyecto en general me pueden contactar por mensaje a pabloth@live.com

se los agradecería un montón

  • puedes agregar la linea 70 de la clase DTC `Mostrar(DTC.java:70)` – Jonathan JOhx Jan 15 '19 at 02:32
  • @JonathanJohx esta es exactamente la linea 70 d[i].getCedula(), se encuentra todo el código en la parte de arriba – Pepe Peluso Jan 15 '19 at 02:57
  • si me puedes ayudar internamente te lo agradecería un montón :D, ya que tendrías que ver todas las clases que tengo hechas para que tal vez puedas entender mejor mi problema – Pepe Peluso Jan 15 '19 at 03:05

0 Answers0