Olá,
possuo uma aplicação com a seguinte estrutura:
Uma classe Vnc que extende JFrame, e outras duas classes Funcionario e Manutencao que extendem JPanel.
Por padrão a classe Vnc cria um objeto de cada uma das duas classes e adiciona somente o objeto funcionario ao contentPane.
Sempre ou um ou outro tem que ser exibido e sempre no mesmo lugar.
Existe um JMenu em Vnc que faz (ou pelo menos deveria fazer) com que entrasse na tela de manutenção.
O problema é que não estou conseguindo fazer funcionar.
esse é um trecho do código do construtor da classe Vnc
func = new Funcionario(db);
manu = new Manutencao(db);
setLayout(new BorderLayout());
add(func, BorderLayout.CENTER);
e aqui o trecho do actionPerformed do botão que deveria fazer a troca dos painéis
removeAll();
add(manu, BorderLayout.CENTER);
Ao clicar no botão nenhuma exceção é lançada, a aplicação simplesmente conjela.
A aplicação também não usa nada de processo da máquina.
E a execução passa pelo trecho do evento pois já coloquei um System.out.println após o add(manu… e é impresso normalmente o teste.
Já tentei adicionar por cima sem usar o removeAll() mas assim ele se comporta de uma maneira muito estranha,
na tela não acontece nada, ao gerar qualquer evento ele exibe o painel manu e oculta o painel func com exceção do botão que gerou o evento,
e após isso conforme eu movo o mouse sobre os componentes eles vão reaparecendo.
Não sei mais o que fazer.
Não sou muito experiente, nunca tive essa situação até hoje.
Grato a qualquer tipo de colaboração.
Edit: Não sei se muda alguma coisa mas os painéis estão estão setados com os seguintes layouts:
func está com null
e manu está com FlowLayout