java - How to I actively set JLabels from an ArrayList to the JPanel? -


i trying make frogger game.

this simple jpanel jlabels on it.

public class playfield extends jpanel implements keylistener{  arraylist<jlabel> rows = new arraylist<jlabel>(); random g = new random();  public playfield(int length){  //length number of rows      generatefield(length);     for(jlabel label : rows){         add(label);  //here add of labels panel     } }  public void generatefield(int length){          //generates our jlabels in arraylist..      for(int = 0; < length; i++){          jlabel lbl = new jlabel();         int obstaclepos = g.nextint(5);         switch (obstaclepos){              case 0: lbl.settext(" x — — — —");             break;             case 1: lbl.settext(" — x — — —");             break;             case 2: lbl.settext(" — — x — —");             break;             case 3: lbl.settext(" — — — x —");             break;             case 4: lbl.settext(" — — — — x");             break;           }          lbl.setbounds(0,20*i,80,20);         rows.add(lbl);  //adding jlabels arraylist         lbl.setname("row" + i);      }  }  public void push(){  //scrolls text 1 right , puts last character @ beginning      for(jlabel label : rows){         label.settext(rotate(label.gettext()));     }  }  public string rotate(string str){  //cycles text 1 right, , wraps last character      string first = str.substring(0, str.length());     string second = str.substring(str.length());     return second+first;  } 

it difficult word question want jlabels added jpanel altered , updated when push() function called.

your rotate method not right...

string first = str.substring(0, str.length()); string second = str.substring(str.length()); 

should more like

string first = str.substring(0, str.length() - 1); string second = str.substring(str.length() - 1); 

first characters excluding last character , second last character.

but, remember, have "spaces" within string may make process little more complicated