java - JavaFX eventhandler nullpointerException -
i have gui several different classes uses same eventhandler. problem can't seem find solution how avoid getting nullpointerexception when eventhandler looking right method call , stumbles upon button yet initialized. have couple of buttons initialized when user goes createaccountgui stage.
public class guihandler implements eventhandler<actionevent> { // class take care off eventhandler (buttons, buttons method). private usergui ug; private advsearch as; private login logi; private createaccgui cag; private organizergui og; private admingui ag; private personregister pr; public guihandler() { ug = new usergui(this); } unless createaccgui has been initialized, whenever comes cag.getregistrate() nullpointerexception. have smart way of handling sort of problem without having split several different handlers.
@override public void handle(actionevent e) { try { //where button goes 2 when clicked on , perform method supposed 2 // usergui class buttons if(e.getsource() == ug.getloginb()) { logi = new login(this); } else if (e.getsource() == ug.getadvsearch()) { = new advsearch(this); } else if (e.getsource() == ug.getsearch()) { } // buttons in login class else if(e.getsource() == logi.getsignin()) { signin(); } else if(e.getsource() == logi.getcreateacc()) { logi.loginstage.close(); cag = new createaccgui(this); } //the buttons in createaccgui class else if(e.getsource() == cag.getregistrate()) { system.out.println("it stop here on registrate"); createaccount(); } else if(e.getsource() == cag.getcancelreg()) { cag.getcreatestage().close(); logi = new login(this); } //the buttons in admingui setting text admin field 2 usergui else if(e.getsource() == ag.getadmlogout()) { ag.stage.close(); } else if(e.getsource() == ag.gethomeareabutton()) { ug.gethomenews().settext(ag.gethomearea().gettext()); } else if(e.getsource() == ag.getaboutbutton()) { ug.getaboutarea().settext(ag.getaboutarea().gettext()); } else if(e.getsource() == ag.getrentbutton()) { ug.getrentarea().settext(ag.getrentarea().gettext()); } } catch(numberformatexception nfe) { joptionpane.showmessagedialog(null, "feil format på noen felter, gjerne endre på dem", "nummer format", joptionpane.error_message); } } // end of handler method }// end of guihandler class
add null check code uses cag
/* right here */ else if( cag != null && e.getsource() == cag.getregistrate()) { system.out.println("it stop here on registrate"); createaccount(); } the && symbol short circuits if false , never reach cag.getregistrate() if cag null
btw joptionpane part of swing, , java 8 update 40 came out new javafx dialog api
Comments
Post a Comment