JDialog fechando JFrame - Tela de Consultas

6 respostas
The_Punisher

Bom dia pessoal, estou começando a trabalhar com interface gráfica em java, e estou utilizando em um sistema de prontuário de enfermagem que será meu TCC na facu.

Em todo o cadastro de pacientes, há o número de prontuário e o RG, dessa forma na tela de consultas, ele poderá ser buscado por esses requisitos. mas em reunião com o grupo, verificamos que esses requisitos podem ser facilmente esquecidos pelo paciente, que pode não estar com o RG ou o prontuário em mãos, optamos por fazer a pesquisa exibindo uma lista com os nomes (janela modal pensei) e assim escolhido o paciente da lista, jogá-lo na tela de consultas (frame da consulta), percebi no forum que há tópicos já relacionados a isso, mas minha dúvida é:

como faço para quando o Modal seja fechado, ele feche a janela de consultas também, já que são janelas distintas?

Obrigado pela ajuda e tenham um bom final de semana!

6 Respostas

magnolohan

olá, coloca assim
"Ex tela.dispose();"
ou
tela.setVisible(false);//fica invisivel
tela.dispose();//retira da memoria
Ok

The_Punisher

obrigado pela ajuda cara, mas esse método eu já tentei e infelizmente não mudou nada

magnolohan

entenda este exemplo acho que vai te ajudar

import javax.swing.*;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
public class TelaModal extends JFrame
{
	JDialog primeira;
	JFrame telacadastro;
	JButton bcadastrar, boutrosdados;
	private static final long serialVersionUID = 1L;
	public TelaModal()
	{
//TELA PRINCIPAL
		super("Tela Principal");
		this.setLayout(null);
		this.setSize(700,500);
		this.setLocationRelativeTo(null);
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//sai e fecha
		this.setVisible(true);
		
		bcadastrar = new JButton("Cadastrar");
		bcadastrar.setBounds(20,50,100,20);
		this.add(bcadastrar);
		
		bcadastrar.addActionListener(new ActionListener()
		{
			public void actionPerformed(ActionEvent d)
			{
				telacadastro.setVisible(true);
			}
		});
//TELA DE CADASTRO
		telacadastro = new JFrame("Cadastro");
		telacadastro.setLayout(null);
		telacadastro.setSize(400, 250);
		telacadastro.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);//apenas retira-se da memoria se fecha-se
		telacadastro.setLocationRelativeTo(null);
		
		boutrosdados = new JButton("Proximo >>");
		boutrosdados.setBounds(20,20,100,20);
		
		telacadastro.add(boutrosdados);
		
		boutrosdados.addActionListener(new ActionListener()
		{
			public void actionPerformed(ActionEvent d)
			{
				primeira.setVisible(true);
			}
		});

//CRIAMOS UMA TELA
		primeira = new JDialog();		
		primeira.setTitle("Outros dados");
		//primeira.setModal(true);//se for Modal não podemos usar o evento abaixo então
		primeira.setAlwaysOnTop(true);//sempre no topo
		primeira.setSize(200,200);
		primeira.setLocationRelativeTo(null);
		
		WindowListener EventosWindows = (new WindowAdapter()//Cria um evento de Janela para fecha-la
		{
			public void windowClosing(WindowEvent ml)
			{
				//System.exit(0);//sai do sistema, fechando todas
				
				//#####** OU **######//
				
				//fecha esta tela e também a tela de cadastro
				telacadastro.setVisible(false);
				telacadastro.dispose();
			}
		});		
		primeira.addWindowListener(EventosWindows);
	}
	public static void main(String args[])
	{
		new TelaModal();
	}
}
The_Punisher

vlw mesmo véi, vou estudar esse código que já me é de grande ajuda e mastigado assim, é quase impossível eu ainda ter dúvidas!!! :smiley:

ViniGodoy

magnolohan, você deve utilizar as tags code sempre que for postar códigos. Elas não só mantém sua formatação do código original, como também faz a colorização. Eu já apliquei as tags no código ali em cima. Se quiser aprender como faz isso, leia:
http://www.guj.com.br/posts/list/50115.java

The_Punisher

magnolohan, vlw mesmo pela ajuda cara, era justamente o que eu precisava como exemplo.

estava com dificuldade para entender essa rotina, mas depois desse exemplo, ficou bem claro agora

vlw mesmo véi.

Criado 11 de julho de 2009
Ultima resposta 20 de jul. de 2009
Respostas 6
Participantes 3