Ecco il codice. Devo chiamare 2(o più volte il metodo disegna)

public class pannello_visualizza_frame extends Canvas {
static final int RIGHE = 50;
static final int COLONNE = 40;

private int num_frame;
private int frame_attuale = 1;
private Color colore = Color.GREEN;

BorderLayout borderLayout1 = new BorderLayout();

public pannello_visualizza_frame(int numero) {
this.num_frame = numero;
try {
jbInit();
} catch (Exception ex) {
ex.printStackTrace();
}
}

void setta_num_frame(int num) {
this.num_frame = num;
}

void jbInit() throws Exception {
this.setSize(600, 600);

}

public void disegna(int numero) {
this.frame_attuale = numero;
repaint();
}

public void update(Graphics g) {
//Graphics g=this.getGraphics();
for (int app = 0; app < this.frame_attuale; app++) {
g.setColor(this.colore);
int sizex = getSize().width;
int sizey = getSize().height;
int riga = (app / RIGHE) * (sizey / RIGHE);
int colonna = (app % COLONNE) * (sizex / COLONNE);
g.fillRect(colonna + 1, riga + 1, (sizex / COLONNE) - 3,
(sizey / RIGHE) - 3);
}

}


public final void paint(final Graphics g) {
int sizex = getSize().width;
int sizey = getSize().height;
int app = 0;
g.setColor(Color.BLUE);
for (int j = 0; j < RIGHE; j++) {
for (int i = 0; i < COLONNE; i++) {
if ((app++) < this.num_frame)
g.drawRect((i * sizex) / COLONNE, (j * sizey) / RIGHE,
sizex / COLONNE - 2, sizey / RIGHE - 2);
else
break;
}
}
}