Como saber se uma janela foi fechada

9 respostas
netbeansjava
K

Estou fazendo um software e uma tela de pesquisa tem dentro o botão de adicionar, mas quando adiciono eu tenho que fazer uma pesquisa em branco para a JTable mostrar o dado que acabou de ser cadastrado.
Gostaria de que no exato momento que a eu fechasse a janela após cadastrar já fizesse automaticamente uma pesquisa em branco, saberiam me dizer como fazer?

9 Respostas

R

Implementa o evento windowClose da janela que estás fechando e neste evento chame o método de pesquisa da outra janela.

K

Poderia me passar um exemplo?

R

package com.javacodegeeks.snippets.desktop;

import java.awt.Button;

import java.awt.Dimension;

import java.awt.event.WindowAdapter;

import java.awt.event.WindowEvent;

import javax.swing.JFrame;

public class Main extends JFrame {

private static void showUI() {

Main jFrame = new Main();

jFrame.setSize(new Dimension(300, 250));

jFrame.add(new Button(“Hello World”));

jFrame.addWindowListener(new WindowAdapter() {

@Override

public void windowClosed(WindowEvent e) {

//aqui chama o método da outra tela para pesquisar

}

});

jFrame.setVisible(true);
}

public static void main(String[] args) {

javax.swing.SwingUtilities.invokeLater(new Runnable() {

@Override

public void run() {

showUI();

}

});
}

}

K
private void formWindowClosed(java.awt.event.WindowEvent evt) {

Pesquisa_Usuarios pu = new Pesquisa_Usuarios();

pu.readJTabel();

}

Dessa maneira?
Pois não funcionou

S

Tem certeza de que você realmente precisa criar uma nova instância da classe Pesquisa_Usuarios?

Posta o código completo das suas classes envolvidas.

R

Pesquisa_Usuarios é sua tela de pesquisa?
Se for não está certo, pois está chamando o método da instancia de pu e não da tela que deve estar aberta.
Para isso dar certo vc vai precisar passar a instância da tela de pesquisa onde está o método para a tela que vc abriu. Ai esta instancia vc usa no windowClosed para chamar o método readJTabel().
Resumindo: não pode fazer isso: Pesquisa_Usuarios pu = new Pesquisa_Usuarios();
O objeto pu precisa vir por parametro(no construtor) na abertura desta tela.

K

Beleza irei tentar

V

Detalhe: Normalmente nós sobrescrevemos o método windowClosing e não windowClosed. Isso porque esse método nos dá a oportunidade de cancelar o fechamento da janela se quisermos.

K

problema resolvido, obrigado

Criado 13 de janeiro de 2017
Ultima resposta 16 de jan. de 2017
Respostas 9
Participantes 4