estou estudando polimorfismo e surgiu um problema…
tenho várias classes que definem formas geométricas que estão todas ligadas a uma superclasse abstrata Forma.
Nesta classe Forma há um método abstrato “draw(Graphics graphics)”, que por exemplo para a forma Retângulo faz “graphics.drawRect(…)”
:arrow: O problema é que eu fiz uma array de Formas para usar um for e desenhar todos os elementos da array na tela… mas o quando faço:
formas[element].draw(Graphics g);
Aparece um aviso do compilador para apagar o “g”, aí eu apago aí ele diz que não pode encontrar o Graphics…
Só que eu não sei o que há de errado… 
Alguém aí pode me ajudar? []'s
Manda seu código pra gente dar uma olhada.
tive uns projetos pra fazer, acabei deixando essa dúvida de lado, mas agora voltei a estudar e queria resolvê-la.
o código é esse:
[code] public void draw(Forma[] forma) {
for(int element = 0; element < forma.length; element++) {
forma[element].desenhar(Graphics g);
}
}[/code]
o erro:
Syntax error on token “g”, delete this token TesteGeometria.java Exercicios_09/src line 57
Mostra o codigo do metodo “desenhar”
Já vi o problema. Seguinte, a intância de Graphics vem pelo método paint. Então o que você têm que fazer é a partir do método paint, percorrer pelo array de instâncias de formas passando a intância obtida pelo método paint para elas. Se você não conseguiu entender manda seu código que eu faço a correção e posto.
Bom não entendi muito bem mas que tal fazer algo do tipo:
public void draw(Forma[] forma, JPanel jPanel ) {
for(int element = 0; element < forma.length; element++) {
forma[element].desenhar( jPanel.getGraphics() );
}
}
Acho que o problema é justamente conseguir uma instância de Graphics, assim fica mais fácil.
{}´s