Passar um objeto para um JDialog que está aberto

2 respostas
programaçãojava
WallysonDesv

Bom dia a todos da comunidade, eu já tentei passar um objeto de um JDialog para outro que estava aberto, e ele criou um outro JDialog, ficando assim duas janelas idênticas abertas, como faço para ele utilizar a que já está aberta sem que ele crie uma nova?

método que que envia e que está criando outra janela

private void enviaParaMonitoramentoJDialog(OcorrenciaDTO dto){
	if(enviar == null){
		OcMonitorada.this.dispose();
		enviar = new MonitoramentoJdialog();
		enviar.recebeDoOcMonitorada(dto);
		
	}else{
		OcMonitorada.this.dispose();
		enviar.dispose();
		enviar.recebeDoOcMonitorada(dto);
		
	}
}

método que recebe

public void recebeDoOcMonitorada(OcorrenciaDTO dto){
	MonitoramentoJdialog.this.dispose();
	main(null);
}

2 Respostas

staroski

O que faz o main(null) na classe MonitoramentoJdialog?

Posta o código completo das duas classes.

D
class Janela extends JDialog {

  public Janela() {
    super();
    // ao clicar no X da janela, esconda a janela
    setDefaultCloseOperation(JDialog.HIDE_ON_CLOSE);
  }

  // limpa conteudo
  public void restaurar();

  // atualiza conteudo, equivalente a setters
  public void atualizar(Object conteudo);

  // abre a janela
  public void abrir() {
    setVisible(true);
  }

  // fechar a janela
  public void fechar() {
    setVisible(false);
  }

  // verifica se está aberta
  public boolean estaAberta() {
    return isVisible();
  }
}

Usa assim:

Janela janela = new Janela();

janela.restaurar();
janela.atualizar(conteudo);// ou use setters
// se não estiver aberta
if (!janela.estaAberta()) {
  janela.abrir();
}

Para fechar, não se dispose(), use fechar()

Criado 9 de fevereiro de 2017
Ultima resposta 9 de fev. de 2017
Respostas 2
Participantes 3