java - Jlist and NullPointerException -


i working on thing class, , have been having ton of trouble jlists. thought figured out how update them list data models, still doesn't work.

please help.

class causing me trouble:

import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swing.event.*; import java.util.*; import java.lang.*;  public class clubdriverwindow extends jpanel implements actionlistener{     private arraylist playerlist;     private defaultlistmodel playerlistmodel;      private string[] secondplayeritems = new string[1];     private string[] firstplayeritems = new string[1];     private string[] players1items = new string[1];     private string[] players2items = new string[1];     private string[] retireplayeritems = new string[1];     private string[] jcomp12items = new string[1];     private string[] restoreplayeritems = new string[1];      private jtextarea players;     private jcombobox secondplayer;     private jcombobox firstplayer;     private jbutton player1win;     private jbutton player2wins;     private jbutton draw;     private jbutton exit;     private jcombobox players1;     private jcombobox players2;     private jtextarea jcomp10;     private jcombobox retireplayer;     private jlist jcomp12;     private jcombobox restoreplayer;     private jbutton retirebutton;     private jbutton restorebutton;     private jtextarea jcomp16;     private jtextfield addplayer;     private jbutton addbutton;      public clubdriverwindow() {         playerlist = new arraylist<player>();         player starter = new player ("starter");         playerlist.add(starter);         playerlist.add(starter);         playerlist.add(starter);         playerlist.add(starter);         playerlist.add(starter);         playerlistmodel = new defaultlistmodel<string>();          updateplayers();          //construct components         players = new jtextarea (5, 5);         secondplayer = new jcombobox (secondplayeritems);         secondplayer.addactionlistener(this);          secondplayer.setactioncommand("secondplayercombobox");         firstplayer = new jcombobox (firstplayeritems);         player1win = new jbutton ("win");         player2wins = new jbutton ("win");         draw = new jbutton ("draw");         exit = new jbutton ("exit");         exit.addactionlistener(this);;         exit.setactioncommand("exit");         players1 = new jcombobox (players1items);         players2 = new jcombobox (players2items);         jcomp10 = new jtextarea (5, 5);         retireplayer = new jcombobox (retireplayeritems);         jcomp12 = new jlist (playerlistmodel);         restoreplayer = new jcombobox (restoreplayeritems);         retirebutton = new jbutton ("retire");         restorebutton = new jbutton ("restore");         jcomp16 = new jtextarea (5, 5);         addplayer = new jtextfield (5);         addbutton = new jbutton ("add player");         addbutton.addactionlistener(this);         addbutton.setactioncommand("addplayer");          //set components properties         players.settooltiptext ("this leaderboard of players");         secondplayer.settooltiptext ("choose player");         firstplayer.settooltiptext ("choose player");         player1win.settooltiptext ("player 1 wins");         player2wins.settooltiptext ("player2 wins");         draw.settooltiptext ("no victor");         exit.settooltiptext ("help, trapped in jbutton!");         players1.settooltiptext ("choose player");         players2.settooltiptext ("choose player");         retireplayer.settooltiptext ("choose player");         restoreplayer.settooltiptext ("choose player");         retirebutton.settooltiptext ("set player aside (for now)");         restorebutton.settooltiptext ("click here bring player back");         addbutton.settooltiptext ("click here add new player");          //adjust size , set layout         setpreferredsize (new dimension (784, 508));         setlayout (null);          //add components         add (players);         add (secondplayer);         add (firstplayer);         add (player1win);         add (player2wins);         add (draw);         add (exit);         add (players1);         add (players2);         add (jcomp10);         add (retireplayer);         add (jcomp12);         add (restoreplayer);         add (retirebutton);         add (restorebutton);         add (jcomp16);         add (addplayer);         add (addbutton);          //set component bounds (only needed absolute positioning)         players.setbounds (40, 40, 300, 300);         secondplayer.setbounds (-170, 295, 100, 75);         firstplayer.setbounds (-185, 355, 100, 75);         player1win.setbounds (45, 405, 100, 25);         player2wins.setbounds (215, 405, 100, 25);         draw.setbounds (135, 445, 100, 25);         exit.setbounds (675, 5, 100, 25);         players1.setbounds (45, 365, 100, 25);         players2.setbounds (215, 365, 100, 25);         jcomp10.setbounds (380, 0, 2, 600);         retireplayer.setbounds (415, 60, 100, 25);         jcomp12.setbounds (-150, 345, 100, 75);         restoreplayer.setbounds (415, 110, 100, 25);         retirebutton.setbounds (595, 60, 100, 25);         restorebutton.setbounds (595, 110, 100, 25);         jcomp16.setbounds (-150, 300, 100, 75);         addplayer.setbounds (415, 165, 100, 25);         addbutton.setbounds (595, 165, 100, 25);     }      public static void main (string[] args) {         jframe frame = new jframe ("mypanel");         frame.setdefaultcloseoperation (jframe.exit_on_close);         frame.getcontentpane().add (new clubdriverwindow());         frame.pack();         frame.setvisible (true);     }      public void wongame(player winner, player loser){         double wrating = winner.getrating();         double lrating = loser.getrating();         double pointmodifier = (lrating/wrating);         wrating += ((pointmodifier*10)+0.5);         lrating -= ((pointmodifier*10)-0.5);         winner.setrating(wrating);         loser.setrating(lrating);         winner.setwins(winner.getwins() + 1);         loser.setlosses(winner.getlosses() + 1);     }      public void drawgame(player player1, player player2){         double p1rating = player1.getrating();         double p2rating = player2.getrating();         double p1modifier = ((p1rating-p2rating)/p1rating);         double p2modifier = ((p2rating-p1rating)/p2rating);         p1rating += ((p1modifier*-5));         p2rating += ((p2modifier*-5));         player1.setrating(p1rating);         player2.setrating(p2rating);         player1.setdraws(player1.getdraws() + 1);         player2.setdraws(player2.getdraws() + 1);     }      public void actionperformed(actionevent e){         if (e.getactioncommand().equals("secondplayercombobox")){         }         else if (e.getactioncommand().equals("exit")){             system.exit(0);         }         else if (e.getactioncommand().equals("addplayer")){             addnewplayer();         }     }      public void addnewplayer(){      }      public void updateplayers(){         int size = playerlist.size();         playerlistmodel.clear();         (int j = 0; (j < (size-1)); j++){             playerlistmodel.add(j,((player)playerlist.get(j)).getname());         }         jcomp12.setmodel(playerlistmodel);     } } 

related player class:

public class player {     //private record playerrecord     private double rating;     private final string id = "";     private int ranking;     public string name;     private int losses;     private int wins;     private int draws;      public player(string name){         rating = 1000.0;         ranking = 0;         name = name;         losses = 0;         wins = 0;         draws = 0;     }      int gettotalgames(){         int t = (wins+draws+losses);         return t;     }      float getwinlossratio(){         float r = (wins/losses);         return r;     }      int getwins(){         return wins;     }      int getlosses(){         return losses;     }      int getdraws(){         return draws;     }      double getrating(){         return rating;     }      string getid(){         return id ;     }      double getranking(){         return ranking;     }      string getname(){         return name;     }      void setwins(int newwins){         wins = newwins;     }      void setlosses(int newlosses){         losses = newlosses;     }      void setdraws(int newdraws){         draws = newdraws;     }      void setrating(double newrating){         rating = newrating;     }      void setname(string newname){         name = newname;     } } 

error:

java.lang.nullpointerexception     @ clubdriverwindow.updateplayers(clubdriverwindow.java:194)     @ clubdriverwindow.<init>(clubdriverwindow.java:52)     @ clubdriverwindow.main(clubdriverwindow.java:144) 

please help, thanks.

maybe should change

private arraylist playerlist; private defaultlistmodel playerlistmodel; 

to

private arraylist<player> playerlist; private defaultlistmodel<string> playerlistmodel; 

and part,

player starter = new player ("starter"); playerlist.add(starter); playerlist.add(starter); playerlist.add(starter); playerlist.add(starter); playerlist.add(starter); 

if want 5 different players, need create them 1 one, e.g.

player starter = null; for(int = 0; < 5; i++) {     starter = new player("starter" + i);     playerlist.add(starter); } 


ok, nullpointerexception part answered.

for nullpointerexception, need call updateplayers(); after have initialized jcomp12..

 jcomp12 = new jlist (playerlistmodel);  // ....  updateplayers(); 

or jcomp12 null inside updateplayers() method!


Comments

Popular posts from this blog

node.js - Using Node without global install -

How to access a php class file from PHPFox framework into javascript code written in simple HTML file? -

java - Null response to php query in android, even though php works properly -