Transferir dados

Bom dia galera!

Já havia perguntado em um tópico anterior quase a mesma coisa. mas a minha dúvida é a seguinte. Preciso passar um array de uma form para outro. Consegui mas apenas com a chamado form, ele não atualiza com o form aberto. vou postar o que tenho para ficar mais fácil o entendimento.

 private void BotOkActionPerformed(java.awt.event.ActionEvent evt) {                                      
        ArrayList dados = new ArrayList();
        for (int i = 0; i < TabelaInserir.getRowCount(); i++) {
            Object Valor3 = TabelaInserir.getModel().getValueAt(i, 0);
            Object Valor4 = TabelaInserir.getModel().getValueAt(i, 1);
            dados.add(new Object[]{Valor3, Valor4});
        }

        SolOrcamento frm = new SolOrcamento();
        frm.exportarNomeac(dados);
        frm.setVisible(true);//Aqui ele chama o form com os dados certinho já funcionando.
        this.dispose();

    }  

Form que está os dados do array em uma jtable.

void exportarNomeac(ArrayList dados) {
    String[] Colunas = new String[]{"ID", "Fornecedor"};

//ArrayList dados = new ArrayList();
ModeloTabela val = new ModeloTabela(dados, Colunas);
jTable3.setModel(val);
jTable3.getColumnModel().getColumn(0).setPreferredWidth(30);
jTable3.getColumnModel().getColumn(0).setResizable(false);
jTable3.getColumnModel().getColumn(1).setPreferredWidth(150);
jTable3.getColumnModel().getColumn(1).setResizable(false);

}

Esta funcionando o código, mas apenas quando ele chama novamente o form. vou explicar como quero o funcionamento, ai se alguém conseguir me dar uma luz

tenho o um form chamado de solicitações, basicamente ele vai ter fornecedores e produtos. Criei nele dua jtable uma para produto outra para fornecedor respectivamente com um botão de procura para cada. Quando clico no botão correspondente ao fornecedor abro o outro form FORNECEDORES que esta dos dados de todos fornecedores, os selecionados são salvo em um array que preciso passar para a jtable do form solicitações.
Está funcionando, o problema é que o código acima passa os valores mas para isso preciso chamar o form novamente. Tem como passar os valores sem precisar reabri-lo?

Vlw galera.

Olha, dá uma pesquisada pelo pattern observable. Ele vai ajudar a resolver o problema.

Bom dia… Acho que sou muito novato no assunto, minha cabeça esta dando pt. li sobre observable, não entendi muita coisa não, vi também que o listener e mais utilizado que ele. Na verdade li tanta coisa que acabei e não entendendo nada. Vou fazer algumas perguntas se alguem me responder sou grato.

  1. Observable ou listener?
  2. Preciso que toda alteração em uma tabela, atualize outra em outro form. o tablelistener faz isso?
  3. Onde no código fica a chamada do metodo listener/observable … Main?
  4. Porque o que parece mais simples é sempre o que enrosca?

Valeu galera…abraço;

Depende do que quer fazer.

O observable permite fazer isso. Você não precisa do pattern todo, só de parte dele.

Depende de qual listener,
A ideia do observable é permitir que você, tendo 2 janelas, consiga transitar dados de uma para outra.

Por que simples não existe.