Mudar a interface dinamicamente

Eaê, galera!

Até hj, toda interface que construí foi “estática” por assim dizer… Ou seja, eu construía a interface toda e depois dava um “pack()” e tudo bem. O problema é que agora preciso alterar os componentes na tela e não estou conseguindo.

A exemplo, tenho um JPanel que vai receber um componente totalmente diferente a cada vez que eu alterar uma opção. Estou tentando o seguinte:

pVisualizacao.removeAll();
temp = new Component() //aqui eu crio o novo componente baseado nas opções
pVisualizacao.add(temp, BorderLayout.CENTER);

O que acontece é que a interface não é atualizada. Isso só acontece se, logo em seguida, eu chamar um “pack()” na janela ou quando eu redimensiono esse painel.

Chamar o “pack()” está fora de questão porque ele reseta todas as alterações na interface personalizadas pelo usuário e, além disso, pra quê redesenhar a janela inteira se eu só alterei um painel?

Qual método eu devo usar para forçar a atualização do meu JPanel? Eu tentei um “repaint()” mas simplesmente não funcionou.

Obrigado pela atenção!

Fala Rapaz,

Esse é um problema bem comum, segue a receita:

//Remova os componentes do seu
pVisualizacao.setLayout(new java.awt.BorderLayout());
pVisualizacao.removeAll();

//Novo componente:
JFileChosser componteTemp = new JFileChosser(); //Por exemplo
componteTemp.setVisible(true);
//Adicionando
pVisualizacao.add(componteTemp);
pVisualizacao.repaint();
pVisualizacao.validate();

Sucessos! 8)

Vlw!

ou então tente um