Java Swing program throws NullPointerException -
i working on grade programme class in school. have decided seek , utilize swing designer create improve (have ugly, working, version already). anyway, trying implement score functionality (which works on ugly version), when click button extremely long error (see below code):
here code 1 done in designer - marked area im beingness told programme fails (see comment !!!!!!):
package week4; import java.awt.borderlayout; public class grade extends jframe { private jpanel contentpane; private jtextfield fldstuname; private jtextfield fldstuid; private jtextfield fldscores; private boolean errorexist; private int scores; private errorchecker ec; /** * launch application. */ public static void main(string[] args) { eventqueue.invokelater(new runnable() { public void run() { seek { grade frame = new grade(); frame.setvisible(true); } grab (exception e) { e.printstacktrace(); } } }); } /** * create frame. */ public grade() { setdefaultcloseoperation(jframe.exit_on_close); setbounds(100, 100, 325, 300); contentpane = new jpanel(); contentpane.setborder(new emptyborder(5, 5, 5, 5)); setcontentpane(contentpane); contentpane.setlayout(null); jlabel lblstuname = new jlabel("enter pupil name:"); lblstuname.setbounds(10, 35, 109, 14); contentpane.add(lblstuname); fldstuname = new jtextfield(); fldstuname.setbounds(129, 32, 139, 20); contentpane.add(fldstuname); fldstuname.setcolumns(10); jlabel lblstuid = new jlabel("enter pupil id:"); lblstuid.setbounds(10, 73, 109, 14); contentpane.add(lblstuid); fldstuid = new jtextfield(); fldstuid.setbounds(129, 70, 139, 20); contentpane.add(fldstuid); fldstuid.setcolumns(10); jlabel lblscores = new jlabel("enter scores:"); lblscores.setbounds(10, 111, 106, 14); contentpane.add(lblscores); fldscores = new jtextfield(); fldscores.setbounds(129, 108, 139, 20); contentpane.add(fldscores); fldscores.setcolumns(10); jbutton btnscore = new jbutton("score"); btnscore.addactionlistener(new actionlistener() { public void actionperformed(actionevent e) { string scorestring; scorestring = fldscores.gettext(); //proof scorestring getting text system.out.println(scorestring); if(!scorestring.equals("")) { errorexist = ec.doubleparsechecker("2.0"); errorexist = ec.doubleparsechecker(scorestring); // why crash programme if(!errorexist) { double tempnum = double.parsedouble(scorestring); errorexist = ec.rangechecker(tempnum, 0, 100); if(!errorexist) { scores += tempnum; joptionpane.showmessagedialog(null, scores); } } } else { fldscores.requestfocus(); //also seek fldscores.settext(""); } } }); btnscore.setbounds(129, 140, 89, 23); contentpane.add(btnscore); jbutton btncalculate = new jbutton("calculate"); btncalculate.addactionlistener(new actionlistener() { public void actionperformed(actionevent arg0) { } }); btncalculate.setbounds(10, 203, 89, 23); contentpane.add(btncalculate); jbutton btnclear = new jbutton("clear"); btnclear.addactionlistener(new actionlistener() { public void actionperformed(actionevent e) { } }); btnclear.setbounds(109, 203, 89, 23); contentpane.add(btnclear); jbutton btnexit = new jbutton("exit"); btnexit.addactionlistener(new actionlistener() { public void actionperformed(actionevent e) { } }); btnexit.setbounds(208, 203, 89, 23); contentpane.add(btnexit); } } error:
exception in thread "awt-eventqueue-0" java.lang.nullpointerexception @ week4.grade$2.actionperformed(grade.java:98) @ javax.swing.abstractbutton.fireactionperformed(unknown source) @ javax.swing.abstractbutton$handler.actionperformed(unknown source) @ javax.swing.defaultbuttonmodel.fireactionperformed(unknown source) @ javax.swing.defaultbuttonmodel.setpressed(unknown source) @ javax.swing.plaf.basic.basicbuttonlistener.mousereleased(unknown source) @ java.awt.component.processmouseevent(unknown source) @ javax.swing.jcomponent.processmouseevent(unknown source) @ java.awt.component.processevent(unknown source) @ java.awt.container.processevent(unknown source) @ java.awt.component.dispatcheventimpl(unknown source) @ java.awt.container.dispatcheventimpl(unknown source) @ java.awt.component.dispatchevent(unknown source) @ java.awt.lightweightdispatcher.retargetmouseevent(unknown source) @ java.awt.lightweightdispatcher.processmouseevent(unknown source) @ java.awt.lightweightdispatcher.dispatchevent(unknown source) @ java.awt.container.dispatcheventimpl(unknown source) @ java.awt.window.dispatcheventimpl(unknown source) @ java.awt.component.dispatchevent(unknown source) @ java.awt.eventqueue.dispatcheventimpl(unknown source) @ java.awt.eventqueue.access$200(unknown source) @ java.awt.eventqueue$3.run(unknown source) @ java.awt.eventqueue$3.run(unknown source) @ java.security.accesscontroller.doprivileged(native method) @ java.security.protectiondomain$1.dointersectionprivilege(unknown source) @ java.security.protectiondomain$1.dointersectionprivilege(unknown source) @ java.awt.eventqueue$4.run(unknown source) @ java.awt.eventqueue$4.run(unknown source) @ java.security.accesscontroller.doprivileged(native method) @ java.security.protectiondomain$1.dointersectionprivilege(unknown source) @ java.awt.eventqueue.dispatchevent(unknown source) @ java.awt.eventdispatchthread.pumponeeventforfilters(unknown source) @ java.awt.eventdispatchthread.pumpeventsforfilter(unknown source) @ java.awt.eventdispatchthread.pumpeventsforhierarchy(unknown source) @ java.awt.eventdispatchthread.pumpevents(unknown source) @ java.awt.eventdispatchthread.pumpevents(unknown source) @ java.awt.eventdispatchthread.run(unknown source)here custom error checker code (which supposedly causing issue:
public boolean doubleparsechecker(string value) { //declare local variables boolean errorflag = false; joptionpane.showmessagedialog(null, "double parse checker ran!"); seek { double tempnum = 0; //attempt convert string int tempnum = double.parsedouble(value); } catch(numberformatexception ne) { errorflag = true; joptionpane.showmessagedialog(null, "error: double parse error", "error", joptionpane.error_message); } //returns if string able converted int. true = yes. false = no. homecoming errorflag; }//end doubleparsechecker
simply put, never initialise ec, null when actionlistener called
i suspect "think" error occurring , occurring 2 different things
while have error, great chance larn how utilize debugger. create breakpoint above code failing , run programme in debug mode , inspect start of variables
java swing
No comments:
Post a Comment