Tenho o seguinte problema tem uma classe menu que chama um JFrame1 e esse abre um JFrame2 que por cinal abre o JFrame1 novamente.
O que eu preciso é que quando eu chame o mesmo frame ele de somente um setvisible true e não crie uma nova tela.
Se precisar do meu código para entender melhor somente me solicitar que eu posto
Obrigado pela atenção.
publicclassJMenuextendsjavax.swing.JFrame{publicstaticSessaosessao;/** Creates new form JMenu */publicJMenu(){initComponents();}...privatevoidjMenuItem_ProcessoEntradaActionPerformed(java.awt.event.ActionEventevt){JProcessoEntradajProcessoEntrada=newJProcessoEntrada();jProcessoEntrada.setVisible(true);jProcessoEntrada.setDefaultCloseOperation(jProcessoEntrada.DISPOSE_ON_CLOSE);}...}
publicclassJProcessoEntradaextendsjavax.swing.JFrame{/** Creates new form JProcessoEntrada */publicJProcessoEntrada(){initComponents();pesquisar();controleCampos();}...privatevoidabreOrcamento(IntegeridOrcamento)throwsException{JOrcamentojOrcamento=newJOrcamento();jOrcamento.populaCampos(idOrcamento);jOrcamento.setVisible(true);jOrcamento.setDefaultCloseOperation(jOrcamento.DISPOSE_ON_CLOSE);}...}
publicclassJOrcamentoextendsjavax.swing.JFrame{/** Creates new form JOrcamento */publicJOrcamento(){initComponents();pesquisar();controleCampos();}...privatevoidabrirProcessoentrada(){try{IntegeridProcessoEntrada=newInteger(jTextField_ID_ProcEntrada.getText());JProcessoEntradajProcessoEntrada=newJProcessoEntrada();jProcessoEntrada.populaCampos(idProcessoEntrada);jProcessoEntrada.setVisible(true);jProcessoEntrada.setDefaultCloseOperation(jProcessoEntrada.DISPOSE_ON_CLOSE);}catch(Exceptionex){JLog.log(ex);JOptionPane.showMessageDialog(this,ex.getMessage(),"Erro: ",JOptionPane.ERROR_MESSAGE);}}...}
Como podem ver eu vou da tela de processo de entrada para o orçamento e vice versa o problema é que cada vez abre uma nova tela e ficam v[code]árias repetidas queria que ele somente desse o setvisible true para as telas algo parecido.
obrigado.
julianofischer
Uma solução:
Armazenar uma referência a JProcessoEntrada em JMenu uma referência a JMenu em JProcessoEntrada.
Você inicia com JMenu, e muda o código para:
if(this.referenciaParaJProcessoEntrada==null){
referenciaParaJProcessoEntrada=newJProcessoEntrada(this); //aqui vc passa o JMenu por parâmetro.
}
Faz o mesmo esquema no JProcessoEntrada, mas com o JMenu!
abraços
Na classe JMenu criei metodos públicos que verificam se esta aberto só da set visible true caso contrario cria o objeto e abro as telas jogando o JMunu como parametro
e nas classes JProcesso entrada e orçamento chamo as telas através dos metodos do jmenu.