setColor com JPanel muda cor dos objetos quando janela é redimensionada

2 respostas
oliversistemas

Ae pessoal porque a cada vez que eu redimensiono minha janela os meus desenhos mudam de cor? Eu sei que fiz um modo randômico para cor, porém, eu esperava que as cores ficassem fixas.

//método ramdomico para gerar um número inteiro de 0 a 256
public static int Colorir(){
		int num = (int) (Math.random()*257);
		return num;
	}

public void paintComponent (Graphics g){
		super.paintComponent(g);
		
		for ( int n=0, k=1 ; k<=nbarras ; n++, k++){
			g.setColor(new Color ( Colorir() , Colorir() , Colorir() ) );
			g.fillRoundRect( 0 , 10+(n*35) , medidasImp[n] , 15 , 5 , 5 );
			g.setColor(Color.black);
			g.drawString( String.valueOf ( medidasImp[n]) ,medidasImp[n]+10 , 22+(n*35) );
		}
}

2 Respostas

XpLoDeR

Olá oliversistemas,

Cara quando você redimensiona uma janela, a JVM chama novamente a função paintComponent e se você faz esse método random dentro da paintComponent, ele irá mudar as cores mesmo. Tente tirar esse random do método paintComponent…

oliversistemas

Eu não sabia disso! Muito obrigado!

Criado 3 de janeiro de 2009
Ultima resposta 4 de jan. de 2009
Respostas 2
Participantes 2