Bom dia, pessoal!
Estou com um problema que está difícil de resolver, pelo menos para mim. Estou tentando “transferir” um dado que está em uma JTable para outro JFrame em outra JTable. O caso é o seguinte:
Eu tenho um sistema de pacotes de viagens, cada pacote é composto por passeios pré cadastrados no banco. O que eu quero é que na hora em que eu estiver cadastrando eu clico em um botão “Adicionar Passeio” e esse botão chamará o JFrame com a JTable com os passeios recuperados do banco. Quando eu clicar duas vezes em um registro da JTable ele deveria enviar o objeto passeio para a JTable do primeiro JFrame.
Este é o método que está no primeiro JFrame, para receber o objeto passeio e adicioná-lo em um ArrayList. A idéia era ir adicionando os objetos selecionados neste ArrayList e ir populando a JTable. Porém, quando eu envio o objeto o ArrayList fica sempre apenas com o registro recém enviado. No caso, eu gostaria que ele fosse recebendo os objetos e fosse acumulando. E a cada objeto novo adicionado ele atualizasse a JTable com o ArrayList atualizado.
Obs. O primeiro JFrame que é a TelaPacotes fica aberto sempre, o segundo que é TelaPasseios abre quando eu clico em adicionar passeio e em seguida fecha após passar o objeto por parâmetro.
Método que recebe o passeio:
public void recebePasseio(Passeio pasEnviado){
p = new ArrayList();
this.p.add(pasEnviado);
this.tblPassPacote.setModel(tabPassPacote);
for(int i = 0;i<p.size();i++){
JOptionPane.showMessageDialog(null, "Código: "+ p.get(i).getCodigo());
}
}
Aqui eu envio o objeto:
public void mouseClicked(MouseEvent e) {
if (e.getClickCount() > 1) {
int selRow = tblPassPacote.getSelectedRow();
Object valor = tblPassPacote.getModel().getValueAt(selRow, 0);
Passeio passeio = new Passeio();
CTRpasseio crtPasseio = new CTRpasseio();
crtPasseio.retornaPasseio(Integer.parseInt(valor.toString()));
dispose();
}
}
Pra finalizar, não esta dando erro, apenas não acontece nada. Não popula a JTable e nem acumula os objetos no ArrayList