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)