Java2D geração de imagens[Resolvido!]

24 respostas
UMC

Ola pessoal eu fiz um classe onde gerar alguns desenhos em Java2D ...
estava dando certo..porem eu cetava no select o que queria.. quando coloquei para trazer so daquela cidade ele criou a 1ª imagens normal e a 2ª ele criou so q montou a 1ª em cima!!! tentei aki varios metodos mais nao tive Sucesso!!
Obrigado opela atenção!
vlw
abs

Aki esta a Classe!
while((rs.next())){
			 
			 setX( rs.getInt("cx")-200);
			 setY( rs.getInt("cy")-200);
			 setX_( rs.getInt("cx_")-200);
			 setY_( rs.getInt("cy_")-200);
			 int nnn = (rs.getInt("sequencia"));
			 setSequencia(rs.getString("sequencia"));
                         String chave = (rs.getString("chave_fk"));

Graphics2D g1 = imagem.createGraphics();  
		  		g1.setColor(Color.WHITE); 
		  	    //g1.drawRect(0,0,820, 677);
				g1.fillRect(0,0, 820, 677);
g1.setFont(bigFont);
		     g1.drawString("Pontos",80,20);
		     g.setFont(bigFont);
		     g.drawString("Pontos",80,20);
if(nnn == 1){
g1.setColor(Color.LIGHT_GRAY);
g1.fillArc(getX(),getY(),20,20,0,360);
 g1.setColor(Color.black);
			     g1.drawString(getSequencia(), getX()+4,getY()+15);

 if(nnn > 1){
 g1.setColor(Color.white);

				 g1.drawLine(getX_()+12,getY_()+12,getX()+12,getY()+12);
if(lum.equals("PST")){
g1.fillArc(getX(),getY(),20,20,0,360);
				      //g.fillArc(getX(),getY(),20,20,0,360);
				      //
				      g1.setColor(Color.black);
 g1.drawString(getSequencia(), getX()+4,getY()+15);
}else{
					 
					 g1.setColor(Color.magenta);
				     g1.fillArc(getX(),getY(),20,20,0,360);
				     g1.setColor(Color.black);
				     g1.drawString(getSequencia(), getX()+4,getY()+15);
setXy1 (new ArrayList<Integer>());
			getXy1().add(getX());
			
			setYx2(new ArrayList<Integer>());
			getYx2().add(getY());
			//xy.add(getY());
			//xy.add(getN());
			setN(new ArrayList<Integer>());
			getN().add(nnn);
			setRes(true);
		 }
			}
g1.setPaint(Color.white);
			g1.dispose();  
ImageIO.write(imagem, "jpg", new File("C:/export.jpg"));  
		}
		}

24 Respostas

ViniGodoy

Você não deveria estar dando nomes de arquivos diferentes?

UMC

Sim Sim ta assim agora

vlw

UMC

po eu so quero limpar a 1ª imagem criada!!!
quando eu criu a 1ª ele continua desenhada!!! e por isso cobre as outras quem vem depois!!!
vlw

UMC

alguem +
Por favor me ajudem ae

ViniGodoy

Ainda nem entendi qual é o seu problema. Como assim “não apaga a imagem”. Você não está gerando imagens diferentes?

UMC

veja bem!!! eu estou gerando as imagens acontece que quando gera a primeira fica norml a imagem q quero ex: uma Bola
quando ele gera a segunda ex: “Quadrado” ele pega gera duas imagens a Primeira a Bola normal sozinha e segunda ele gera a Bola e o Quadrado!!!
vlw

ViniGodoy

Ok, mas antes de desenhar um quadrado, você não dá um fillRect para limpar a imagem?

UMC

acredito q nao pq fica tudo dentro do WHILE entao vem varios dados de coodenadas para poder desenhar uma imagens so e ae quando vem dados diferentes acontece o problema.

ViniGodoy

Mas se vc não dá o comando para limpar, como você espera que o java limpe?

Você deve identificar quando os dados são diferentes, e dar o fillRect.

UMC

to tentando fazer isso mais nao dar quando faço isso ele so cria um ponto!!!
sao varios pontos para uma imagens so!!

ViniGodoy

Você tem que fazer o fillRect só quando terminou de desenhar os vários pontos de uma imagem, e vai iniciar os vários pontos de outra.
Se você nem sequer sabe em que momento isso ocorre, sugiro que reveja sua lógica. Mas provavelmente será possível colocar o código do fillRect dentro de algum tipo de if.

UMC

hum… terei q rever msm "minha lógica "depois de tantos testes sem sucesso!!
aki ,achei q iria resolver meu problema!!
Muito obrigado pela atenção!!!
vlw
abs

UMC

alguém +;

Por favor…

Obrigado!!!

vlw
abs

UMC

alguém aeeee;
vlw
abs

ViniGodoy

Não entendi, qual é a dúvida agora?

Você precisa colocar um if no seu while, para limpar a imagem sempre que trocar a cidade. Provavelmente vai ser algo parecido com isso:

if (!ultimaCidade.equals(rs.getString("cidade")) { g1.setColor(Color.WHITE); g1.fillRect(0,0, 820, 677); ultimaCidade = rs.getString("cidade"); }

Mas isso já não é mais um problema gráfico. Só você conhece o que tem dentro do seu banco de dados, por isso, é você que terá que pensar nessa lógica.
Não faz mal nenhum pensar um pouco no problema, antes de sair upando tópico no GUJ, não acha? Como eu falei, se nem você sabe quando o seu resultset troca de uma cidade e começa a processar outra, não é a gente que vai saber.

UMC

sim pode ter razão mais você não acha que estou fazendo isso por que já tentei de varias maneiras?
já que não estou vendo o problema! achava que aqui alguém viria e me desse uma Orientação Lógica!!

Não custa nada pergunta como também não custa nada responder!!!
Obrigado pela atenção!!!
vlw
abs

UMC

Sobre a duvida!!
A minha dúvida continua mesma !!!
primeira imagem que gera sobrepõem a segunda!! e assim por diante Ex: se gera 10 imagens a ultima imagem terá as outras nove!!
vlw
abs

ViniGodoy

Ok.

Volto a dar a orientação que damos a todos no GUJ. Não fique upando tópicos.

Se você não tem mais informações a acrescentar, então será impossível para nós resolvermos seu problema. Lembre-se que não podemos compilar o sistema, ou executa-lo, que não conhecemos a informação do seu banco de dados, e que não sabemos exatamente o que seu sistema precisa fazer.

Eu já comentei ali o caminho das pedras, como tinha comentado em um post anterior. Agora cabe à você montar a solução. E, como te alertei em outro tópico, tenha muito carinho ao montar uma aplicação gráfica. Se manter o seu código bagunçado, vai realmente ser muito difícil chegar ao resultado que você deseja.

UMC

Ok!

a pedidos não ficarei upando tópicos.

sobre isso!

estarei a disposição e acrescentar !!
apenas imaginei que a Classe que disponibilizei ajudaria!!!

vlw
abs

E

Tradução: o Vini mandou a bola de cristal dele para consertar e até agora não voltou do conserto.
Enquanto a máquina leitora de pensamentos do Vini não está plenamente funcional, sua excelência UMC poderia dignar-se a explicar o que quer fazer com o código que postou?

E a propósito UMC, seu blog parece ser mais uma colcha de retalhos de coisas copiadas de outros sites que você postou como se fossem suas - estão lá para encher seu currículo e impressionar algum eventual empregador. Por favor, pelo menos cite as fontes.

P.S. - Eu acabei de ver que ele cita a Caelum. Menos mal.

UMC

[color=red]Os Moderadores que me desculpe mais vai ser aqui mesmo!!![/color]
Atenção "entanglement "
1º Não pedi nenhum tradutor !!!

Tradução: o Vini mandou a bola de cristal dele para consertar e até agora não voltou do conserto.
Enquanto a máquina leitora de pensamentos do Vini não está plenamente funcional, sua excelência UMC poderia dignar-se a explicar o que quer fazer com o código que postou?

2º O blog e meu quem cuida dele sou EU!!!
Não estou querendo impressionar ninguém e nenhum empregador como você citou. !!!
Eu mostro serviço!!!
É melhor você ficar fora disso!!!

3º Incomodado e que se mude!!!

4º Melhor acabar por aqui!!!

UMC

Resolvi o problema!!
Obrigado pela atenção!!!

M

Você poderia postar a solução para que fique de referência para futuras dúvidas?

UMC

ok!!!

Criado 11 de dezembro de 2009
Ultima resposta 17 de dez. de 2009
Respostas 24
Participantes 4