Esconder tela e recuperar com os dados antigos

5 respostas
H

galera to com um problema, tenho uma tela que recebe um setVisible(false), como que faço pra recuperar ele. exemplo: se ela tiver com o botao clicado tem que aparecer com o botao.

e outra. como que faço para nao duplicar meu frame.

5 Respostas

Pedrosa

Para não duplicar um frame faça algo assim:

//seta que a nova janela esta aberta apos abrir
setJanelaImpressao(true);

Verifica se a janela esta aberta antes:

if(isJanelaImpressao()){
JOptionPane.showMessageDialog(null,"Tela de impressão já esta ativa!","Atenção",JOptionPane.INFORMATION_MESSAGE);
   		return;
}

Criando os métodos para controle.

private boolean janelaImpressao;
/**
	* Objetivo: Setar a flag para abertura da tela de impressao 
	* Data: 07/08/2006
	* @param janelaImpressao boolean
	*/
	public void setJanelaImpressao(boolean janelaImpressao) {
		this.janelaImpressao = janelaImpressao;
	}
	
	/**
	* Objetivo: Verificar se a janela de impressao ja esta ativa 
	* Data: 07/08/2006
	* @return boolean
	*/
	public boolean isJanelaImpressao() {
		return janelaImpressao;
	}

Na nova janela quando fechar é preciso setar a janela para false.

H

Pedrosa valeu, isso resolve um pouco meu problema. mas eu preciso retornar meu form justamente como estava antes. alguem da uma ajuda ai.

H

valeu LizRocha , so mais uma duvida como vou fazer pra recuperar esse meu form hide?

peerless

form.show () ;

Luiz_Rocha

Opa, companheiro! Acho que posso te ajudar com a coisa de recuperar a janela invisibilizada.

Deixa eu ver se eu entendi: você tem uma janela, a qual você, num determinado instante e por uma determinada razão, “esconde”; depois você quer que ela apareça novamente exatamente como estava antes.

Bem, até agora hà pouco eu achava que o problema estava em você usar o setVisible(false). Eu ia sugerir usar outra estratégia: uma baseada na manipulação do método setDefaultCloseOperation( int ) . Eu ia até sugerir que você visse uma mensagem minha na qual eu explico esse método (a saber, http://www.guj.com.br/posts/list/48085.java#251524 ). Mas logo vi que no seu caso a janela será escondida automaticamente, sem que ninguém clique no X. Então procurei por um método “hide”, que escondesse a janela. Encontrei-o, mas ele está desatualizado [deprecated] e foi substituído por… setVisible(). Voltei ao zero.

Então, depois dessa enrolação toda, a minha sugestão é a seguinte: você cria um objeto para guardar nos seus atributos os valores dos componentes da janela a ser escondida. Chame o método que captura esses valores bem antes de esconder a janela; e quando for abri-la novamente, chame um método que passe os valores de volta para ela.

Gasta processamento e gasta memória, mas é uma solução. Ou então repense se você realmente precisa esconder essa janela. Lembre-se: “pra quem sabe olhar pra trás nenhuma rua é sem saída”(Gabriel, o Pensador).

Espero ter sido de ajuda.

Criado 2 de março de 2007
Ultima resposta 3 de mar. de 2007
Respostas 5
Participantes 4