Duvida - Passar dados entre 2 jDialog pelo construtor (sem abrir nova janela)

Bom dia, tudo bem ?

Tenho uma duvida relacionado a passar dados via construtor entre 2 jDialog (PesquisaPessoa, Venda)

O codigo faz os seguintes passos:

1 - Eu tenho meu jDialog Venda que chama o jDialog PesquisaPessoa
2 - No PesquisaPessoa eu pego todos os dados da linha selecionada do meu jTable e passo para um ArrayList ao pressionar o botão ok
3 - No construtor do Venda eu pego esse ArrayList e quero setar os dados em um jTextField na tela Venda ja criado

meu código esta o seguinte

// VENDA

public Venda(java.awt.Frame parent, boolean modal, ArrayList<String> listaVenda) {
super(parent, modal);
initComponents();
        
this.listaVenda = listaVenda;                
        
String id = listaVenda.get(0);
String nome = listaVenda.get(1);
        
jTextFieldCliente.setText(id);
jLabelNomeCliente.setText(nome);               
}
// PESQUISAPESSOA

private void jButtonOkActionPerformed(java.awt.event.ActionEvent evt) {

// Pego a linha da tabela (Estou usando abstract)
jTablePesPessoa.getSelectedRow();
        
// Criei um Vetor para guardar os dados
Vector<Object> linha = new Vector<Object>();
  
// Salvo no vetor
for(int i=0; i<jTablePesPessoa.getColumnCount(); i++){
    linha.addElement( jTablePesPessoa.getValueAt( jTablePesPessoa.getSelectedRow(),i));                        
}
        
// O metodo VetorPataStr serve para mudar todos os dados para uma arrayList de String
// Chamo o contrutor de Venda
vd = new Venda(null, true, pc.vetorParaStr(linha)); 

vd.setVisible(true);
}

Quando eu chamo “vd.setVisible(true);” ele cria uma outra tela do jeitinho que eu quero. Porem eu não gostaria que criasse uma outra tela. E sim usasse a tela que ja foi chamada antes.

Estou tentando fazer o seguinte… Quando clico em ok a tela PesquisaPessoa some e insere os dados na tela Venda anterior.

Obrigado desde ja.

Faça seu JDialog retonar os dados para a janela Venda, sem abrir uma nova janela, aqui tem um exemplo:

Se você dá um new Venda, você está criando uma janela inteiramente nova. O ideal seria que sua janela de vendas fizesse algo como:

seuDialog.setVisible(true); if (seuDialog.isOkClicado()) { //Atualiza a própria tela aqui }

ViniGodoy era isso mesmo que eu estava procurando. O seu exemplo me ajudou muito deu certinho aqui. Consegui !!! =D

Mais uma coisinha…

Um colega me disse que poderia usar o padrão singleton para fazer o que eu quero. Isso é possível ? alguém teria algum exemplo ?! Qual sseria a logica dessa “bagaça”

Abraço
Obrigado por tudo

Usar o Singleton vai gerar mais problemas do que vantagens. Não vá por esse caminho.

Ok ViniGodoy. Obrigado mais uma vez

Pode fechar o topico :smiley: