Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

Ruben_Barbosa

Btnvoltar

Mensagens Recomendadas

Ruben_Barbosa

Boas pessoal,

A minha duvida é a seguinte:

-Pretendo fechar um Form e abrir outro.

Eu sei perfeitamente que no form onde estou tenho a opção windowClosing(WindowEvent evt)

{ onde metia o

codigo System.exit(0);}

Mas o Que pretendo é em private void btnVoltarActionPerformed(java.awt.event.ActionEvent evt) {

fazer frmActual.close

new frmNew().show();}

So que não da o atributo close :S.

Desculpem a minha noobisse mas estou aprender java :P

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Knitter

System.exit(0) irá fechar a máquina virtual Java, não a JFrame. Consequentemente, se fechas a máquina virtual fechas qualquer aplicação que esteja a executar em cima dela, e naturalmente fecha as JFrames existentes.

Para fechares uma janela, em Swing, deves invocar o método dispose().

Atenção que o método fecha a janela mas os recursos podem não ser logo libertados, se voltares a abrir uma janela para a qual fizeste dispose, vais ter todos os componentes no estado em que estavam quando a janela fechou, ex: os campos de texto irão ter o texto introduzido. Mas dependendo do que pretendes fazer isso pode ou não ser um problema.

Se é apenas para fechar a janela, um simples dispose resolve o problema.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Ruben_Barbosa

O Dispose vai servir perfeitamente :P.

Por vai servir como botão voltar :P.

OU seja no Form preenhco o formulario e dps limpo a informação e é guardado na Base de dados :).

Mas já agora e de outra forma por exemplo sair e mesmo que tenha la texto quando tornar a chamar aparecer em branco tudo ?

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Knitter

Não percebi bem o que perguntaste, faltam aí umas pontuações...

O dispose vai remover a JFrame ou a JDialog do ecrã, eventualmente os recursos associados a essa janela serão removidos, mas se o utilizador alterou o estado de algum componente, por exemplo, escrevendo texto, escolhendo caixas de combinação, etc., e se voltares a mostrar a mesma janela, então os elementos vão aparecer como estavam na altura em que invocaste o dispose.

Mas isto só acontece se removeres e voltares a mostrar a mesma janela, por exemplo:

....
frame.dispose();
frame.setVisible(true);
...

Aqui estou a remover uma janela e logo de seguida a voltar a mostrar a janela, estas duas linhas podem ter efeitos que não são os esperados.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.