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