Duvida básica com Canvas

Aeee! Esse é meu primeiro post aqui! \o/ Tipo criei meu paint e coloquei coisas nele e to querendo saber como dou “refresh” na tela.

public void paint(Graphics meuGrafico){
meuGrafico.drawRect(30, 30, 50, 50);
meuGrafico.drawRect(40, 40, 50, 50);
}

Como vocês devem ver, o retangulo ficara em cima do outro, gostaria de saber como faz pra apagar a tela anterior pra depois desenhar o outro…

Vlw!

faça um g.fillRect com as dimensoes da tela na cor que vc deseja o fundo e depois desenhe o que deseja.

para repitar basta chamar o método repaint da classe Canvas.

abraço

Eu fiz isso aqui

int i=0;
public void paint(Graphics meuGrafico) {
    meuGrafico.setColor(255, 255, 255);
    meuGrafico.fillRect(0, 0, getWidth(), getHeight());
    
    meuGrafico.setColor(0, 0, 0);
    meuGrafico.drawRect(i, i, 10, 10);
    i++;
    repaint();
}

Isso aqui é o que se usa comumente? Tipo, sempre colocar o fillRect()? Não existiria um metodo direto tipo um clearScreen()? Isso ai não iria criar uma stack no buffer até estourar a memoria? Vlw!

Sim, o fillRect seria o seu clearScreen.

Vc não pode colocar esse repaint dentro do metodo paint. Vai dar loop infinito até moer a memória.

O repaint tem que estar em uma Thread separada.