0

When the displayAll() button is pressed I receive a NullPointer at both the append method in the first and when the first method is called in the second. the code should cycle through the array and print each name and mark to the text field. when done it should show the average mark. Because of the error the average is not outputted and so I need some help to understand why an error is occurring.

private void printStudentNameAndMark() {

    displayTextArea.append(String.format("%-29s%-17s%9s\n",markArray[currentStudent].getStudentName(), markArray[currentStudent].getStudentMark(), markArray[currentStudent].getGrade(markArray[currentStudent].getStudentMark())));

}


private void displayAll() {
    displayHeading();

    for(currentStudent = 0; currentStudent < MAX_STUDENTS; currentStudent ++) {
        printStudentNameAndMark();
        average += markArray[currentStudent].getStudentMark();
    }
    appendLine();
    displayTextArea.append(String.format("%-29s%2d\n", "Average mark: ", average));

    // TODO -- complete error message code
}

Here's the error I receive

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
    at Assignment2.MarksGUI.printStudentNameAndMark(MarksGUI.java:149)
    at Assignment2.MarksGUI.displayAll(MarksGUI.java:167)
    at Assignment2.MarksGUI.actionPerformed(MarksGUI.java:106)
    at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
    at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
    at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
    at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
    at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
    at java.awt.Component.processMouseEvent(Unknown Source)
    at javax.swing.JComponent.processMouseEvent(Unknown Source)
    at java.awt.Component.processEvent(Unknown Source)
    at java.awt.Container.processEvent(Unknown Source)
    at java.awt.Component.dispatchEventImpl(Unknown Source)
    at java.awt.Container.dispatchEventImpl(Unknown Source)
    at java.awt.Component.dispatchEvent(Unknown Source)
    at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
    at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
    at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
    at java.awt.Container.dispatchEventImpl(Unknown Source)
    at java.awt.Window.dispatchEventImpl(Unknown Source)
    at java.awt.Component.dispatchEvent(Unknown Source)
    at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
    at java.awt.EventQueue.access$500(Unknown Source)
    at java.awt.EventQueue$3.run(Unknown Source)
    at java.awt.EventQueue$3.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
    at java.awt.EventQueue$4.run(Unknown Source)
    at java.awt.EventQueue$4.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
    at java.awt.EventQueue.dispatchEvent(Unknown Source)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.run(Unknown Source)
soul6942
  • 67
  • 9
  • I should have elaborated a little bit more. It works completely fine when used in a different method to just display the current item of the array but as soon as I try to display all it gives me this error – soul6942 May 14 '17 at 08:45
  • So something is null at line 149. Since that is a very long line and you haven't shown us an [mcve] there is little more we can say. – greg-449 May 14 '17 at 08:45
  • line 149 is the append method as stated above – soul6942 May 14 '17 at 08:45
  • Yes well something is null on that line, it could be any of the variables you use there - you will have to debug the code to find out which. – greg-449 May 14 '17 at 08:47
  • thats the thing, I have and none of the variables are null, it outputs everything the way it should but then the nullpointer happens and it won't output anyhing afterwards. – soul6942 May 14 '17 at 08:48
  • Java doesn't just generate null pointer exceptions from nowhere - something **is** null. Use the Eclipse debugger and step through the code line by line. – greg-449 May 14 '17 at 08:49
  • I know it doesnt. thats why I put it on here. the name is outputted correctly, so are the marks and grade. yet it still gives this error – soul6942 May 14 '17 at 08:51
  • the debugger doesnt show anything wrong either. Ive been going over the code for hours and still can't find anything – soul6942 May 14 '17 at 08:53

0 Answers0