Chamar uma tela e deixar a tela anterior em segundo plano

6 respostas
E

Boa noite,

Pessoal  estou fazendo uma aplicação onde tenho uma tela principal com todas as opções do programa, ao selecionar uma destas opções chama uma outra tela, por exemplo um relatório, ou uma tela de cadastro. Gostaria de saber como faço para deixar a janela principal em segundo plano até que feche a janela nova?

Exemplo abaixo, escolho a opção 10 e chamo a tela do relatório, porém fico com as duas janelas abertas, a do relatório e a principal.

switch(opcao){

case 10:

//CHAMA A TELA DO RELATÓRIO

FrmFaturamentoPorData frmFaturamento = new FrmFaturamentoPorData();

frmFaturamento.setVisible(true);

break;	

}

6 Respostas

R

Você está querendo fazer uma janela Modal. Procure por isso no javadoc do JDialog, ou mesmo no fórum, que deve encontrar exemplos.

G

Mano

EU faria assim

Tela Principal

Quando clicar em Cadastro:

new Cadastro(this).setVisible(true);

Na tela de Cadastro

public Cadastro(JFrame frame){

this();

frame.setVisible(false);

}

Quando fechar você poe no evento pro frame.setVisible(true).

flw

I

Bom dia,

você pode criar um jdialog em uma nova classe

e chamar o metodo setOwner(boolean);

Abração

E

Valeu galera, vou tentar aqui…

R

GabrielCardelli:
Mano

EU faria assim

Tela Principal

Quando clicar em Cadastro:

new Cadastro(this).setVisible(true);

Na tela de Cadastro

public Cadastro(JFrame frame){

this();

frame.setVisible(false);

}

Quando fechar você poe no evento pro frame.setVisible(true).

flw

++

ai na classe Cadastro eu sobreescreveria o método dispose da seguinte forma

public void dispose(){ frame.setVisible(true); super.dispose(); }

Lembrando que pra isso funcionar vc deve colocar em algum lugar da sua tela cadastro

setDefaultCloseOperation(DISPOSE_ON_CLOSE);

ok? =)

E

Boa tarde pessoal,

Testei estas opções e a maneira mais simples de fazer foi a seguinte:
1-Criei um JDialog porque nele posso escolher se vai ser modal ou não, ficou assim:

public class JdFaturamentoData extends JDialog {

	public JdFaturamentoData(java.awt.Frame parent, boolean modal) {
		super(parent, modal);
		initComponents();
	}

2-E na tela principal, na hora de instanciar a classe JdFaturamentoData(meu JDialog) passei o parâmetro modal
como "false" ai quando esta tela é aberta, a tela principal fica invisível e só após o fechamento do JDialog ela
volta a aparecer. Se criar a tela no NetBeans é mais fácil ainda porque a propriedade modall esta disponível
para marcar true ou false.

JdFaturamentoData jdFaturamentoData = new JdFaturamentoData(null, false);
jdFaturamentoData.setVisible(true);
Criado 20 de dezembro de 2009
Ultima resposta 27 de dez. de 2009
Respostas 6
Participantes 5