java - Why am I getting a NullPointerException when I try to get data from a getter? -


edit: ok here full code since guys asking :

import javax.swing.*; import java.awt.*;  public class panel extends jpanel {  private jtextfield username_field; private jtextfield skype_field; private jtextfield raidcall_field; private jtextfield teamspeak_field; private jcombobox server_combobox; private jcombobox levels_combobox; private jcombobox mytier_combobox; private jcombobox mydiv_combobox; private jcombobox partner_tier_combobox; private jcombobox partner_div_combobox; private jcombobox myrole_combobox; private jcombobox partner_role_combobox; private jradiobutton normal,ranked; private string region; private string tier; private string division; private string skype; private string raidcall; private string teamspeak; private string partner_role; private int mode;  public panel(appui.panels panel){      string star = "<span style='color:#ff0000;'>*</span>";      switch (panel) {          case northpanel :             setbackground(color.gethsbcolor(20,20,20));             jlabel title = new jlabel();             title.settext("<html>fields marked " + star + " required filled.</html>");             title.setfont(new font("tahoma", font.bold, 10));             add(title);              break;          case centerpanel :              setlayout(new gridbaglayout());             setbackground(color.light_gray);             username_field = new jtextfield(10);             username_field.settooltiptext("enter summoner name here");              string[] servers = { "na", "euw", "eune", "tr", "br", "lan", "las", "ru", "oce" };             server_combobox = new jcombobox<string>(servers);             server_combobox.settooltiptext("select region account in");              string[] levels = {"1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16"                     ,"17","18","19","20","21","22","23","24","25","26","27","28","29","30"};             levels_combobox = new jcombobox<string>(levels);             levels_combobox.settooltiptext("select level summoner is");              additem(this, new jlabel("<html>summoner name :" + star + "</html>") , 0, 0, 1, 1);             additem(this, username_field ,1,0,1,1);             additem(this, new jlabel("<html>summoner level :" + star + "</html>"), 0,1,1,1);             additem(this, levels_combobox, 1,1,1,1);             additem(this, new jlabel("<html>server :" + star + " </html>"), 0,2,1,1);             additem(this, server_combobox, 1, 2, 1, 1);              break;          case southpanel :              jlabel require = new jlabel();             jlabel require1 = new jlabel();             jlabel require2 = new jlabel();               setlayout(new gridbaglayout());             setbackground(color.gethsbcolor(20,20,20));             buttongroup bg = new buttongroup();             normal = new jradiobutton("normal game");             ranked = new jradiobutton("solo/duo ranked game");             bg.add(normal);             bg.add(ranked);              box queue = box.createhorizontalbox();             queue.add(new jlabel("<html>i want play :" + star + "</html>"));             queue.add(box.createhorizontalstrut(5));             queue.add(normal);             queue.add(ranked);              string[] tiers = {"bronze", "silver" , "gold", "platinum", "diamond"};             string[] divs = {"i", "ii", "iii", "iv", "v"};              mytier_combobox = new jcombobox<>(tiers);             mydiv_combobox = new jcombobox<>(divs);              box myrank = box.createhorizontalbox();             myrank.add(new jlabel("<html>my solo queue rank : "));             myrank.add(require);             myrank.add(box.createhorizontalstrut(15));             myrank.add(mytier_combobox);             myrank.add(box.createhorizontalstrut(15));             myrank.add(mydiv_combobox);              string[] myroles = {"jungler", "top laner", "mid laner", "adc", "support"};             string[] partner_roles = {"jungler", "top laner", "mid laner", "adc", "support"};              myrole_combobox = new jcombobox<>(myroles);             partner_role_combobox = new jcombobox<>(partner_roles);              box roles = box.createhorizontalbox();             roles.add(new jlabel("i "));             roles.add(box.createhorizontalstrut(5));             roles.add(myrole_combobox);             roles.add(box.createhorizontalstrut(5));             roles.add(new jlabel("<html>" + star + " looking </html>"));             roles.add(box.createhorizontalstrut(5));             roles.add(partner_role_combobox);             roles.add(require1);              partner_tier_combobox = new jcombobox<>(tiers);             partner_div_combobox = new jcombobox<>(divs);              box partner_min_rank = box.createhorizontalbox();             partner_min_rank.add(new jlabel("looking partner minimum rank of "));             partner_min_rank.add(require2);             partner_min_rank.add(box.createhorizontalstrut(5));             partner_min_rank.add(partner_tier_combobox);             partner_min_rank.add(box.createhorizontalstrut(5));             partner_min_rank.add(partner_div_combobox);              jbutton button = new jbutton("results");             button.addactionlistener(e -> {                 system.out.println("[test] summoner level : " + getlevel());             });             additem(this, queue, 0, 0, 1, 1);             additem(this, myrank , 0, 1, 1, 1);             additem(this, roles, 0, 2, 1, 1);             additem(this, partner_min_rank, 0, 3, 1, 1);             additem(this, button, 0, 4, 1,1);              ranked.addactionlistener(e -> {                 if (ranked.isselected()){                      require.settext("<html>"+ star + "</html>");                     require1.settext("<html>" + star + "</html>");                     require2.settext("<html>"+ star + "</html>");                 }             });              normal.addactionlistener(e -> {                 if (normal.isselected()){                      require.settext("");                     require1.settext("");                     require2.settext("");                 }             });              break;          case eastpanel :              setlayout(new gridbaglayout());              skype_field = new jtextfield(5);             raidcall_field = new jtextfield(5);             teamspeak_field = new jtextfield(5);              box skype= box.createhorizontalbox();             skype.add(new jlabel(" username :"));             skype.add(box.createhorizontalstrut(5));             skype.add(skype_field);             skype.setborder(borderfactory.createtitledborder("skype"));              box raidcall = box.createhorizontalbox();             raidcall.add(new jlabel("username :"));             raidcall.add(box.createhorizontalstrut(5));             raidcall.add(raidcall_field);             raidcall.setborder(borderfactory.createtitledborder("raidcall"));              box teamspeak = box.createhorizontalbox();             teamspeak.add(new jlabel("username :"));             teamspeak.add(box.createhorizontalstrut(5));             teamspeak.add(teamspeak_field);             teamspeak.setborder(borderfactory.createtitledborder("teamspeak"));              additem(this, skype, 0, 0, 1, 1);             additem(this, raidcall, 0, 1, 1, 1);             additem(this, teamspeak, 0, 2, 1, 1);             break;          default :             system.out.println("panel not found!");     }  }  public string getsummonername(){      return username_field.gettext(); }  public int getlevel(){      return this.levels_combobox.getselectedindex() + 1; }  public string gettier() {      switch (mytier_combobox.getselectedindex()) {         case 0 :             tier = "bronze";             break;         case 1 :             tier = "silver";             break;         case 2 :             tier = "gold";             break;         case 3 :             tier = "platinum";             break;         case 4 :             tier = "diamond";             break;          default :             system.out.println("tier not found!");      }      return tier; }  public string getdivision(){      switch (mydiv_combobox.getselectedindex()){         case 0 :             division = "i";             break;         case 1 :             division = "ii";             break;         case 2 :             division = "iii";             break;         case 3 :             division = "iv";             break;         case 4 :             division = "v";             break;          default :             system.out.println("division not found!");     }      return division; }  public string getregion(){      switch (server_combobox.getselectedindex()) {         case 0 :             region = "north america";             break;         case 1 :             region = "europe west";             break;         case 2 :             region = "europe nordic & east";             break;         case 3 :             region = "turkey";             break;         case 4 :             region = "brazil";             break;         case 5 :             region = "latin america north";             break;         case 6 :             region = "latin america south";             break;         case 7 :             region = "russia";             break;         case 8 :             region = "oceania";             break;          default :             system.out.println("region not found!");     }      return region; }  public int getgamemode(){      if (normal.isselected()){          mode = 0;      } else {          mode = 1;      }      return mode; }  public string getskype() {      if (skype_field.gettext().isempty())         skype = "not specified";     else         skype = skype_field.gettext();      return skype; }  public string getraidcall(){      if (raidcall_field.gettext().isempty())         raidcall = "not specified";     else         raidcall = raidcall_field.gettext();      return raidcall;  }  public string getteamspeak(){      if (teamspeak_field.gettext().isempty())         teamspeak = "not specified";     else         teamspeak = teamspeak_field.gettext();      return teamspeak; }  public string getmyrole(){      string myrole = "";      switch (myrole_combobox.getselectedindex()){          case 0 :             myrole = "jungler";             break;         case 1 :             myrole = "top laner";             break;         case 2 :             myrole = "mid laner";             break;         case 3 :             myrole = "adc";             break;         case 4 :             myrole = "support";             break;         default :             system.out.println("role not found!");      }      return myrole; }  public string getpartnerrole(){     switch (partner_role_combobox.getselectedindex()){          case 0 :             partner_role = "jungler";             break;         case 1 :             partner_role = "top laner";             break;         case 2 :             partner_role = "mid laner";             break;         case 3 :             partner_role = "adc";             break;         case 4 :             partner_role = "support";             break;         default :             system.out.println("role not found!");     }      return partner_role; }  public string getpartnermintier(){     string tier = "";      switch(partner_tier_combobox.getselectedindex()){         case 0 :             tier = "bronze";             break;         case 1 :             tier = "silver";             break;         case 2 :             tier = "gold";             break;         case 3 :             tier = "platinum";             break;         case 4 :             tier = "diamond";             break;         default :              system.out.println("tier not found!");     }      return tier; }  public string getpartnermindiv(){     string div = "";      switch (partner_div_combobox.getselectedindex()){         case 0 :             div = "i";             break;         case 1 :             div = "ii";             break;         case 2 :             div = "iii";             break;         case 3 :             div = "iv";             break;         case 4 :             div = "v";             break;         default :             system.out.println("division not found!");     }      return div; }  public void additem(jpanel p, jcomponent c, int x, int y, int width, int height){      gridbagconstraints gc = new gridbagconstraints();     gc.gridx = x;     gc.gridy = y;     gc.gridwidth = width;     gc.gridheight = height;     gc.insets = new insets(5,5,5,5);     gc.fill = gridbagconstraints.none;     p.add(c, gc); } 

}

well have getter :

public int getlevel(){     return levels_combobox.getselectedindex() + 1; } 

this variable levels_combobox :

private jcombobox levels_combobox; 

and yes instantiated in method :

string[] levels = {"1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16"                     ,"17","18","19","20","21","22","23","24","25","26","27","28","29","30"}; levels_combobox = new jcombobox<string>(levels); 

why getting nullpointerexception, when try test output :

system.out.println("[test] summoner level : " + getlevel()); 

you're initializing jcombobox inside case block of switch statement, 1 no guarantee of being called before offending method called.

solution: you've got bad code design, , must fix it. initialize critical components in constructor , not dependent on switch/case block.

i'm not sure why you've got such switch statement in constructor looks odd , dangerous, , suggest consider re-designing constructor isn't needed. perhaps want instead create factory of sort.


edit
panel code trying , disobeying single responsibility principle,

that every class should have single responsibility, , responsibility should entirely encapsulated class. services should narrowly aligned responsibility.

as aside, re-name panel class name doesn't clash core java class of same name, java.awt.panel class. if fix this, switch/case statement no longer needed, , error go away.


as second aside, i'll bet you're using enum looks this:

class appui {    enum panels {       northpanel, centerpanel, southpanel, eastpanel    } } 

Comments

Popular posts from this blog

java - Intellij Synchronizing output directories .. -

git - Initial Commit: "fatal: could not create leading directories of ..." -