Como atualizar o JPanel além do repaint() e revalidate()?

Olá pessoal,

Estou há alguns dias sofrendo para mostrar um gráfico feito no jFreechart em um Panel.
Já olhei vários fóruns e tópicos aqui mesmo no GUJ, mas não consegui descobrir o que pode estar errado.

O que acontece é o seguinte : Estou lendo algumas tabelas e com os dados gerados eu crio o Chart e chartPanel e adiciono esse chartPanel em um JPanel que já tenho criado, só que o gráfico não aparece nem com ‘reza brava’.

Já utilizei o debug pra saber se os dados das tabelas estão vindo e está tudo ok. Estou utilizando o Netbeans e já adicionei os .jar do JFreechart na lib do projeto.

Eu preciso dar algum refresh no jPanel ou algo parecido?

Segue parte do código que adiciona o chartPanel no JPanel:

private void jcGraficosActionPerformed(java.awt.event.ActionEvent evt) {

CriaGraficos grBarraAtual = new CriaGraficos(percentualOcupacao, totalLeitos, textoV, textoH);
JFreeChart chartB = grBarraAtual.gBVert2D_Ocup_Leitos(dataset);
chartPanel = new ChartPanel(chartB, false);
jpGrafico.add(chartPanel);
jpGrafico.revalidate();
jpGrafico.repaint();
}

Adicionei o código inteiro caso alguém precise visualizá-lo.

grato
Marcio Oliveira

tenta


	java.awt.EventQueue.invokeLater(new Runnable(){
			public void run(){
				jpGrafico.repaint();
			}
				
			});

Valeu fzamara, funcionou!

Detalhe, precisei colocar o revalidate() também. Ficou assim :

[code] if (chartPanel != null) {
jpGrafico.add(chartPanel);
java.awt.EventQueue.invokeLater(new Runnable(){
public void run(){
jpGrafico.revalidate();
jpGrafico.repaint();
}

        });  
    }[/code]

Outra coisa, com os layouts : Absolute Layout, Card Layout e Null Layout - NÃO Funciona.
Coloquei o BorderLayout e funcionou direitinho.

Obrigado pela dica!

Marcio

Situação atipica, pq ja usei somente com repaint(), e tambem ja usei com esses outros layouts ai.
Mais esse negocio de atulizar Painel no Java deixa agente meio loco mesmo ne.
hehe

Não sei se vou falar besteira, mas lá vai…

Será que difere de versão do JDK (estou com a 6.0_05) ou então do NetBeans que estou usando a 6.1?

até

Estou com o mesmo problema, e uso o netBeans 6.1

Me ajuda aí, onde devo colocar esse envento?

coloquei assim, e nao funcionou:

[code] public void setNomePaciente ( String nomePaciente ) {
this.nomePaciente = nomePaciente;
jTPaciente.setText(this.nomePaciente);
jTPaciente.revalidate();
jTPaciente.repaint();
System.out.println("cade? " + jTPaciente.getText());

java.awt.EventQueue.invokeLater(new Runnable(){   
    public void run(){   
        jTPaciente.revalidate();   
        jTPaciente.repaint();
    }   
           
    });  
}[/code]