Threads - the return

2 respostas
Mychely

meu programminha e uma corrida de dukes.
cada um representa um thread e cada um ta em jpanel diferente.
so que o meu problema agora é:
ao final dos threads eu tenho que escrever a posicao de cada um(1°, …) no canto esquerdo do respectivo jpanel.
ai escrevi o seguinte…

@SuppressWarnings("static-access")
	protected void paintComponent(Graphics g) {
		super.paintComponent(g);
		g.drawImage(duke, x, y, size, size, this);

		if (finished) {
			g.setColor(Color.red);
			g.drawString(ranking.toString(), 10, 20);

		}

	}

so que nada acontece…
dicas?

2 Respostas

qmx

se não me falha a memória, vc tem que chamar um método dispose ao final das operações com graphics 2d pra ele efetivamente desenhar na janela

como eu disse, se não me falha a memoria…

ViniGodoy

Não é bem assim. Você não pode alterar o contexto gráfico do objeto Graphics (nada de setColor). Então, o ideal é fazer uma cópia desse objeto. E, no final, fazer o dispose da cópia.

@SuppressWarnings("static-access")   
    protected void paintComponent(Graphics g) {   
        super.paintComponent(g);   
        Graphics2D g2d = (Graphics2D)g.create();
        g2d.drawImage(duke, x, y, size, size, this);   
  
        if (finished) {   
            g2d.setColor(Color.red);   
            g2d.drawString(ranking.toString(), 10, 20);   
        }   
        g2d.dispose();
    }
Criado 28 de novembro de 2007
Ultima resposta 28 de nov. de 2007
Respostas 2
Participantes 3