JFrame

3 respostas
K

Como eu faço para fechar somente uma janela…e não a aplicação toda?

por exemplo, eu tenho uma aplicação chamada Principal que tem a opção para mim ir para uma tela de cadastro.

Se eu quiser fechar a tela de cadastro…que comando eu posso utilizar para fechar somente essa tela?

se eu usar esse código abaixo, ele fecha tudo System.exit(0);

3 Respostas

thiago.correa

Sim é para isso que serve esse comando, terminar a aplicação. Ao invés de usá-lo, na sua janela interna, coloque o seguinte comando nela (na janela interna!!!):

class JanelaInterna extends JInternalFrame() {
    public JanelaInterna() {
        this.setDefaultCloseOperation(JInternalFrame.EXIT_ON_CLOSE);
        this.setClosable(true);
    }

    //demais métodos da sua janela interna
}
K

eu quero sair pelo botão da aplicação…

como eu faço para gerar um evento do botao sair…

lina

Para fechar somente a janela que esta em foco, você deve usar o comando dispose();
pois o comando usado por você System.exit(0); como você notou fecha a aplicação inteira.

e para fechar a janela com um evento do 'x' no canto da tela coloque o código em seu construtor:

//
 // Cria a ação ao clicar no x da janela.
 //
 addWindowListener
 (
 	new WindowAdapter()
 	{
 		public void windowClosing(WindowEvent e)
 		{
 			dispose();
 		}
 	}
 );

e para fecha-la com um determinado evento e para um determinado botão feito por você em sua aplicação.. segue o código:

/**
  * Ação quando clicado no botão.
  */
 Action
 io_ie_fechar	=	new	AbstractAction()
 {
 	public void actionPerformed(ActionEvent e)
 	{
 		dispose();
 	}
 };

é claro que para isso funcionar, na criação de seu botão você deve passar a ação como parametro... new botao(io_ie_fechar);

Acho que é isso...

Tchauzin!

Criado 28 de março de 2007
Ultima resposta 28 de mar. de 2007
Respostas 3
Participantes 3