Dúvida Básica - Swing

4 respostas
thundercas

Seguinte galera, tenho 1 programa que quando o usuário clicar no botão “Registrar”, abrirá, em cima da tela anterior, um novo JFrame para cadastro. No entanto, caso queira voltar para a tela anterior, ele pode clicar em SAIR. Como faço para ele fechar apenas a tela de Registro e manter a tela inicial???

Obrigado desde já!!

4 Respostas

davidbuzatto

Por padrão, no JFrame, quando se clica no fechar, ele é escondido, ou seja, o objeto ainda está vivo, apenas invisível.

Não sei como vc está procedendo para manipular o fechamento do seu JFrame.

Se vc estiver usando o NetBeans, por padrão ele registra que um frame deve terminar a aplicação quando for clicado em fechar (EXIT_ON_CLOSE). Isso é feito através do método setDefaultCloseOperation (a segunda propriedade “defaultCloseOperation”).

Mude ela para DISPOSE_ON_CLOSE se vc quiser que o frame seja “destruído” quando clicar no fechar ou HIDE_ON_CLOSE se quiser que ele se torne invisível. Se vc quiser que nada seja feito, vc ainda pode usar a constante DO_NOTHING_ON_CLOSE.

Dê uma olhada, sua aplicação deve estar sendo terminada justamente por esse comportamento padrão do NetBeans de fazer todos os JFrames EXIT_ON_CLOSE.

Até mais!

thundercas

David, muito obrigado pelas informações, realmente não tinha conhecimento… Agora, pelo que você disse, isso serve apenas quando eu clicar no “X”, correto???

E se eu quiser ter um botão “SAIR” ou “CONCLUIR”, como posso amarrar essas funções a ele?? Através do System.exit(0)???

davidbuzatto

Olá.

Se vc usar System.exit(0) vc está dizendo para a máquina virtual terminar.

No evento do botão, é só colocar o método correspondente.

Se vc quiser fechar a aplicação (como vc  colocou), vc usa o System.exit(0); (comportamento EXIT_ON_CLOSE)

Se vc quiser fazer o frame ficar invisível, vc usa setVisible(false); (comportamento HIDE_ON_CLOSE)

Se vc quiser fazer o frame ser destruído, vc usa dispose(); (comportamento DISPOSE_ON_CLOSE)

Veja ai se é isso que vc está precisando.

Até mais!

thundercas

É isso aih David, muito obrigado!!
Abraços

Criado 13 de junho de 2008
Ultima resposta 14 de jun. de 2008
Respostas 4
Participantes 2