Problemas com a Classe Graphics

5 respostas
thiagossantos

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… :frowning:

Alguém aí pode me ajudar? []'s

5 Respostas

leonardo.segala

Manda seu código pra gente dar uma olhada.

thiagossantos

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:
public void draw(Forma[] forma) {
		
		for(int element = 0; element < forma.length; element++) {
			
			forma[element].desenhar(Graphics g);
			
		}
		
	}

o erro:
Syntax error on token "g", delete this token TesteGeometria.java Exercicios_09/src line 57

vivi_grieco

Mostra o codigo do metodo “desenhar”

leonardo.segala

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.

Java_Vinicius_Machin

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

Criado 14 de junho de 2005
Ultima resposta 4 de jul. de 2005
Respostas 5
Participantes 4