Jump to content
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

Sign in to follow this  
Ruben_Barbosa

Btnvoltar

Recommended Posts

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

Share this post


Link to post
Share on other 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.

Share this post


Link to post
Share on other 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 ?

Share this post


Link to post
Share on other 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.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.