java - ListCellRenderer returning Null pointer -


this first post here apologies in advance if horrible...

i'm trying add items list of custom classes jlist using custom listcellrenderer. each has variety of things add row, new row being taken each in list:


    public class matchrecord {     private string player;     private integer kills;     private integer deaths;     private integer assists;//getters + setters etc etc below} 

private class gamestatistics{//this main class of program          listmodel = new defaultlistmodel();         jlist.setmodel(listmodel);         listmodel.clear(); //get rid of junk in list before loading         recordjlist.setlayoutorientation(jlist.vertical);          //add records jlist         recordjlist.setcellrenderer(new recordlistrenderer());          list<matchrecord> list = new arraylist();         list.addall(recordset); //recordset set<matchrecord> has been loaded file          for(int = 0; < list.size(); i++){             system.out.println(list.get(i).getplayer()); //this not null!             listmodel.addelement(list.get(i));         } } 

    public class recordlistrenderer extends jpanel implements listcellrenderer {      private jlabel[] labels = new jlabel[3];      public recordlistrenderer(){         setopaque(true);         setlayout(new gridlayout(1, 4));          //set font size + colour here     }      public component getlistcellrenderercomponent(jlist list,             object r,             int index,             boolean isselected,             boolean hasfocus){          matchrecord record = (matchrecord) r;          labels[0].settext(record.getplayer()); //this line returns null pointer         labels[1].settext(record.getkills());         labels[2].settext(record.getdeaths());         labels[3].settext(record.getassists());     return this} 

i sout content of list make sure not null, line highlighted above returns null pointer.

my knowledge of java still limited, (simple!) appreciated.

you initialize array of jlabels:

private jlabel[] labels = new jlabel[3]; 

but never fill array values, null when want access them. set each element new jlabel() , won't null when need them.


Comments

Popular posts from this blog

linux - xterm copying to CLIPBOARD using copy-selection causes automatic updating of CLIPBOARD upon mouse selection -

c++ - qgraphicsview horizontal scrolling always has a vertical delta -