Problema com ArrayList ((Resolvido))

Pessoal, estou usando o NetBeans para tentar realizar isso. Tenho o Seguinte problema

tenho que quando clicar no botão salvar, ele salve no registro os dados e acrescente estas informações em um table model.

Meu problema é: eu faço o primeiro lançamento nome: Maria (OK)
faço o segundo lançamento nome: João(Problema)

a minha tebela fica:
João
João

segue parte do código:

[code]
public void cadastrar() throws Exception {
cadastrarDAO dao = new cadastrarDAO ();
dao.inserir(cadastrar);
lista = gerarlista();

}[/code]
private List<Cadastro> gerarlista() {
        

        cadastrar.getNome();


        lista.add(cadastrar);



        return lista;

experimentei fazer assim para ver o que poderia ocorrer…

[code]
public void cadastrar() throws Exception {
System.out.println(lista);
cadastrarDAO dao = new cadastrarDAO ();
dao.inserir(cadastrar);
lista = gerarlista();
System.out.println(lista);

}[/code]

quando mandei rodar 1 cadastro ficou [] e depois com o nome Maria
quando mandei o segundo cadastro ficou Joao, Joao direto
o que ta me deixando louco é que antes disso eu não uso a tabela para absolutamente nada!!

estou usando Table Model

Alguem pode me dar uma luz?

Cara, seu código tá muito confuso. Não sei muto bem o que comentar sobre ele, mas um código pra adicionar um item na lista ficaria algo assim:public void adicionarCadastro(Cadastro cadastro){ minhaListaDeCadastros.add(cadastro); } E pra chamar fica algo assimpublic void metodoQueAdicionaCadastro(){ Cadastro cadastro = new Cadastro(); // seta todos os valores necessários adicionarCadastro(cadastro); }

Concordo com o Rodrigo Sasaki, é a melhor maneira, o código fica mais limpo e fácil de entender.
Por favor, se ainda encontrar dificuldades, tente ser um pouco mais claro, mas acredito que utilizando a solução do rodrigo, dará certo

Vou postar o código certinho, acho que as minhas mudanças fez ficar meio confuso,

estou fazendo um sistema de postagem segue o que possuo:

classe Controller

[code]public void cadastrarPostagemSistema() throws Exception {

    PostagemDAO dao = new PostagemDAO();
    dao.inserir(listaPostagem, postagem);
    


}[/code]

ClasseDAO

[code]
public List inserir(List listaPostagem,Postagem postagem) {

    String sql = "INSERT INTO CADASTRO_POSTAGEM(DATA, SERVICO, ETIQUETA, DESTINATARIO,DOCUMENTO,ENDERECO,COMPLEMENTO,OBS,BAIRRO,CIDADE,ESTADO,CEP,ALTURA,LARGURA,COMPRIMENTO,PESO,AR,MP,VD) VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";

    try {
        try (PreparedStatement stmt = connection.prepareStatement(sql)) {
            stmt.setString(1, postagem.getData());
            stmt.setString(2, postagem.getServico());
            stmt.setString(3, postagem.getEtiqueta());
            stmt.setString(4, postagem.getDestinatario());
            stmt.setString(5, postagem.getDocumento());
            stmt.setString(6, postagem.getEndereco());
            stmt.setString(7, postagem.getComplemento());
            stmt.setString(8, postagem.getObs());
            stmt.setString(9, postagem.getBairro());
            stmt.setString(10, postagem.getCidade());
            stmt.setString(11, postagem.getEstado());
            stmt.setString(12, postagem.getCep());
            stmt.setString(13, postagem.getAltura());
            stmt.setString(14, postagem.getLargura());
            stmt.setString(15, postagem.getComprimento());
            stmt.setString(16, postagem.getPeso());
            stmt.setString(17, postagem.getAr());
            stmt.setString(18, postagem.getMp());
            stmt.setString(19, postagem.getVd());
            stmt.execute();

listaPostagem.add(postagem);

        }
    } catch (SQLException u) {
        throw new RuntimeException(u);
    }
    return listaPostagem;
    

}[/code]

Porem toda vez que eu realizo esse cadastro
Primeiro Registro fica ok!
Segundo Registro em diante, ele renomea todos os campos com os mesmo dados lançado por ultimo
Ou seja: Primeiro lançamento: Campo 1 - Maria
Segundo Registro: Campo 1 Joao, Campo 2 Joao,
e assim vai indo
Terceiro Registro Campo 1- Roberto, Campo 2 Roberto, Campo 3 Roberto…
Entende Campo a linha.

Alguem pode me dar uma luz?

Aposto que o problema está não a gravar mas a carregar a tabela. Deves estar a usar o mesmo objecto.

então me ajude nesta lógica:

eu tenho o listaPostagem

eu faço o primeiro cadastro e no fim

listaPostagem.add(postagem);

eu nao entendo porque quando eu mando adicionar mais um

listaPostagem.add(postagem);

ele pega esse ultimo e seta estes para a lista inteira

Porque nunca em lado nenhum deves ter feito novamente um new Postagem()

Maravilha… tava faltando mesmo, corrigiu todos os problemas exceto 1.

quando vou adicionar na lista

A primeira coluna da linha de cima pega o valor da mesma coluna da linha de baixo, mais uma luz =) ?

Só vendo código…

public void cadastrarPostagemSistema() throws Exception { PostagemDAO dao = new PostagemDAO(); dao.inserir(listaPostagem, postagem); }

[code]public List inserir(List listaPostagem,Postagem postagem) {

    String sql = "INSERT INTO CADASTRO_POSTAGEM(DATA, SERVICO, ETIQUETA, DESTINATARIO,DOCUMENTO,ENDERECO,COMPLEMENTO,OBS,BAIRRO,CIDADE,ESTADO,CEP,ALTURA,LARGURA,COMPRIMENTO,PESO,AR,MP,VD) VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";

    try {
        try (PreparedStatement stmt = connection.prepareStatement(sql)) {
            stmt.setString(1, postagem.getData());
            stmt.setString(2, postagem.getServico());
            stmt.setString(3, postagem.getEtiqueta());
            stmt.setString(4, postagem.getDestinatario());
            stmt.setString(5, postagem.getDocumento());
            stmt.setString(6, postagem.getEndereco());
            stmt.setString(7, postagem.getComplemento());
            stmt.setString(8, postagem.getObs());
            stmt.setString(9, postagem.getBairro());
            stmt.setString(10, postagem.getCidade());
            stmt.setString(11, postagem.getEstado());
            stmt.setString(12, postagem.getCep());
            stmt.setString(13, postagem.getAltura());
            stmt.setString(14, postagem.getLargura());
            stmt.setString(15, postagem.getComprimento());
            stmt.setString(16, postagem.getPeso());
            stmt.setString(17, postagem.getAr());
            stmt.setString(18, postagem.getMp());
            stmt.setString(19, postagem.getVd());
            stmt.execute();

listaPostagem.add(postagem);

        }
    } catch (SQLException u) {
        throw new RuntimeException(u);
    }
    return null;
     



}[/code]

Meu código está assim!

O campo data de Postagem é uma String?

só esta como String no sistema pora causa do formato…, bo banco ele é tipo data…

Olá, sim no banco de dados é tipo DATA

no model Postagem é tipo String pois eu converto a data para efetuar o cadastro no banco de datos.

estou tentando a dias arruma isso será que tem mais alguma dica para me ajudar?
Obrigado

EDIT: Ufa consegui resolver, problema estava pois o campo “Serviço” estava em um combobox, o que fazia nao atualizar o campo corretamente

Abraços