Como fechar um JFrame apartir da classe dao

3 respostas
gildojr

Olá Galera…

no andar do meu desenvolvimento me deparei com a seguinte situaçao… tenho no sistema o uma consulta de usuario o sistema faz a consulta e verifica se o usuario existe, caso o usuário nao exista o sistema pergunta para ele se gostaria de cadastrar o novo usuário abrindo a página de cadastro…

minha duvida é a seguinte no momento em que abro a cadastro quero fechar o pesquisa…

qm controla isso é a classe dao…

para ficar melhor vou colocar o exemplo aqui… ja tentei fazer alguns teste mas sem sucesso…ok

confirma = JOptionPane.showConfirmDialog(null,“Contato nao cadastrado. \n Deseja cadastrar novo contato ?”);
if (confirma == 0){

CadastroP cadP = new CadastroP();
                cadP.setVisible(true);

                PesquisaP p = new PesquisaP();
                p.dispose();

            }else if(confirma == 1){

desde ja obrigado…

3 Respostas

samirrolemberg

no botão que dispara a consulta, vc pode fechar ali mesmo com dispose();

mas, se vc quer pelo controle, vc tem que mapear a tela.

eu não sei explicar mto bem o nome do metodo, mas alguem vai saber o que é.

gildojr

deu certo mano…

mas gostaria de fazer isso pelo dao… ou pelo menos saber como fazer… vlw

samirrolemberg

eu faço asssim:

no construtor do controle eu passo um argumento da tela que eu estou controlando (reduntante!)

public ControleTelaP(JFrame tela) {
		super();
		this.tela = tela;
	}

e

para mapear isto atraves do action performed (seja de botão ou de menu/menuitem) o controle implementa ActionListner

@Override
	public void actionPerformed(ActionEvent e) {
		// botão OK
		if (e.getActionCommand().equals("OK")) {
			//ações

		}
		// botão fechar
		if (e.getActionCommand().equals("Fechar")) {
			this.tela.dispose();

		}
	}

e o começo basico do controle fica mais ou menos assim

public class ControleTelaP implements ActionListener{

	private JFrame tela; //liga a tela do VIEW

}

na tela que vc quer adicionar este controle vc faz:

private ControleTelaP ctp = null;
	
	public TelaP() {
		super();
		ctp = new ControleTelaP(this);//inicia antes se vc não está mapeando componentes, ou depois do initialize() se vc está
		initialize();
	}
Criado 1 de junho de 2010
Ultima resposta 1 de jun. de 2010
Respostas 3
Participantes 2