Tenho uma aplicação onde existe um JFrame principal e um JFrame que é chamado dentro do programa para ser uma tela auxiliar. Quero fechar essa tela auxiliar (que é JFrame) utilizando um botão fechar dentro dela. No tratamento de eventos como deve ficar o comando associado ao botão fechar? Esse JFrame está configurado com um DISPOSE_ON_CLOSE para ir para a janela de nível superior e fecha adequadamente quando clico no X no canto da janela, mas gostaria que um botão também tivesse essa prerrogativa, veja o código abaixo:
privatevoidbtFecharActionPerformed(java.awt.event.ActionEventevt){// TODO add your handling code here:}
Qual o código que devo digitar no lugar de // TODO add your handling code here?
Se para abrir um JFrame você chama o método setVisible(true).
Pra fechar é só chamar setVisible(false).
anyblueangel3
Note, Staroski, que o setVisible foi usado diretamente associado a um objeto da classe JFrame, da seguinte forma:
jFrame2.setVisible(true);
Dentro do arquivo GuiCadastroProdutos.java, porém o setVisible(false) que fecha o JFrame jFrame2 tem que ser usado dentro de um método ligado a um botão sair que está no arquivo GuiCadForProduto.java que não reconhece o identificador jFrame2 e não aceita setVisible(false) isolado (eu já testei, dá erro de compilação). Veja onde deve ser fechado o JFrame:
privatevoidbtFecharActionPerformed(java.awt.event.ActionEventevt){// TODO add your handling code here:}
É um trecho da classe GuiCadForProduto e o código que fecha JFrame ao acionar o botão fechar deve estar em // TODO add your handling code here:…
Se você quiser ver os códigos dos arquivos .java é só me escrever que eu publico aqui, vocês tem alguma idéia de como faço o botão fechar esse objeto JFrame?
Obrigado,
Ronaldo
staroski
Acho que pra você ainda não está claro o que é uma classe e o que é um objeto e como objetos trocam mensagens.
Há alguns meses você estava com as mesmas dúvidas.
Ou você passa uma referência do JFrame2 para o GuiCadastroProdutos ou faz suas janelas serem singletons, de forma a você sempre manipular o mesmo objeto.
Sim, variavelDoJFrame2.setVisible(false).
anyblueangel3
Por gentileza, qual código tenho que colocar no lugar de // TODO add your handling code here:…
(Não tá caindo a ficha… por favor, seja explicito).
Atenciosamente,
Ronaldo
E
essevaiproale1 like
Peguei a conversa no meio, mas se a ideia é fechar o frame não seria somnente chamar o metodo dispose na ação do botão?