Problema com jFrame sendo chamado por 2 telas diferentes

Bom dia, sou novo em java e principalmente no Swing e estou precisando de uma opinião de vocês.

Tenho uma tela de cadastro de filmes, uma tela de consulta de filmes e uma tela de aluguel de filmes.

Preciso que a tela de consulta de filmes seja chamada pela tela de cadastro e de aluguel, para facilitar para o usuário.

Criei a tela de consulta com 2 construtores, um deles recebendo tela de cadastro de filmes como parâmetro e o outro recebendo a tela de aluguel como parâmetro, assim posso usar um

telacadastrofilmes.setEnabled(true); e um telaaluguel.setEnabled(true); no fechamento da tela de consulta, para que o usuário não possa mexer nem na tela de cadastro de filmes nem na tela de aluguel enquanto ele não fechar a tela de consulta (seja pelo botao sair ou pela ‘xisinho’ do jFrame), o problema é que quando qualquer um dos botoes de saida é pressionado, o java encontra uma das duas referencias de memoria como null (nullPointerException) dá um erro e não confere a outra, então acontece que se eu chamo a consulta de filmes pela tela de cadastro, na tela de aluguel não funciona e vice e versa, pensei que o java só estava interpretando o erro como erro grave e circundei a logica com try{}catch(Exception erro){} para ver se isso resolveria, só que não… Vocês saberiam me dizer qual função deveria utilizar para isto?

Se sim posso postar as classes aqui para que possam analisar.

Agradecido imensamente por sua atenção.

Esse é um problema muito comum a quem não sabe que normalmente você deve ter apenas 1 JFrame por aplicação e o resto são JDialogs modais (ou talvez não, dependendo do que você precisa fazer).

Transforme seus JFrames em JDialogs modais e você vai ver que seu problema se resolve de maneira mais simples.

hmm, entendi, voce poderia me indicar algum conteúdo de certa forma didático para trabalhar com este componente?

http://docs.oracle.com/javase/tutorial/uiswing/components/dialog.html

Agora, o que você acha de, ao usar JFrames ou JDialogs, utilizar JPanels? Para cada tela um JPanel e, a cada troca de tela simplesmente troque o JPanel que estiver no JFrame pelo JPanel selecionado.

Mesmo que você precise em algum momento de mais de uma tela aberta, ainda assim é uma boa opção. Só que usando JDialog.

muito obrigado pelas respostas, vou conferir todas.

Acredito que pode ser viável, porém como comecei o projeto dessa forma terei que terminar assim, mas vou testar para os proximos, pois é mais compativel com a minha visão de troca de telas, o material que utilizei me orientou desta forma, vou procurar mais sobre o assunto, obrigado entanglement e Rodrigo Vieira Pinto pelas idéias, assim que eu consiga tempo para implementar e testar retorno neste tópico.

Abraços.

[quote=ManoDinis]muito obrigado pelas respostas, vou conferir todas.

Acredito que pode ser viável, porém como comecei o projeto dessa forma terei que terminar assim…[/quote]

Eu já perdi muito tempo começando coisas de maneira errada e insistindo em terminar algo que começou errado.
Aprendi que o mais rápido é pegar tudo que interessa (por exemplo, a lógica que está dentro das telas), aproveitar, e refazer a parte que foi feita errado (no seu caso, o esquema de navegação das telas).

é que preciso entregar este trabalho para terça feira, estou com pouco tempo no final de semana e falta muito pouco para terminar, vou tentar alterar só esta tela de consultas da maneira que me servir só para que eu consiga entregar para o professor. É o trabalho final da matéria sabe e este foi meu único empecilho durante a programação… Acredito que conseguirei terminá-lo do jeito que quero com as dicas de vocês.

Bom, como não tenho muito tempo para entregar e com as provas finais do semestre, resolvi o problema da seguinte forma:

quando a tela de consulta é encerrada, ela verifica de a variável aluguel != null para executar o setEnables(true);, o mesmo fiz para a janela de cadastro de clientes, assim contorno o erro de nullpointer, mas vou testar como voces me indicaram para implementar nos proximos trabalho.

Bom final de semana a todos.