Update TableModel concatenando

Caros,

Estou com o seguinte problema que não consigo resolver!
o formulário carrega os dados do bd belezinha ao abrir…
realizo filtro na tabela do form e seleciono para realizar uma atualização dos dados, após alterar os dois jtextfields confirmo a alteração mas os dados na tabela do form é apresentado concatenado as informações do jtextfielde1 e jtexfield2 na coluna 2 e 3 da tabela. vejam os prints:

OBS: OS DADOS SÃO ATUALIZADOS CORRETAMENTO BD!
Fiquem a vontade em sugerir alguma mudança no meu tableModel!

tabela iniciada carregando os dados do bd

tabela após a atualização dos dados

Aqui minhas classes para analisarem

Aqui Classe modelTable
package Model.Table;

import Model.Cidade;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import javax.swing.table.AbstractTableModel;


public class ModelTableCidade extends AbstractTableModel {

    //Nessa lista você grava da classe
    List<Cidade> lista;
    //codigo
    private final int COLUMN_CODIGO = 0;
    //descrição
    private final int COLUMN_DESCRICAO = 1;
    //uf
    private final int COLUMN_UF = 2;

    public ModelTableCidade(List<Cidade> cidade) {
        lista = new ArrayList<>(cidade);
    }

    public ModelTableCidade() {
        this(new ArrayList<Cidade>());
    }

    @Override
    public boolean isCellEditable(int row, int col) {
        return false;
    }

    @Override
    public int getRowCount() {
        return lista.size();
    }

    @Override
    public int getColumnCount() {
        return 3;
    }

    @Override
    public String getColumnName(int columIndex) {
        if (columIndex == this.COLUMN_CODIGO) {
            return "Codigo";
        }
        if (columIndex == this.COLUMN_DESCRICAO) {
            return "Cidade";
        }
        if (columIndex == this.COLUMN_UF) {
            return "UF";
        }
        return "Cidade";
    }

    public void addRow(Cidade c) {
        lista.add(c);
        Collections.sort(this.lista);
        this.fireTableDataChanged();
//        Avisamos o JTable que ele deve repintar a última linha
        // this.fireTableRowsInserted(lista.size() - 1, lista.size() - 1);

    }

    @Override
    public Object getValueAt(int rowIndex, int columnIndex) {
        //Aqui informamos para o JTable que dado está em cada linha/coluna da tabela.		
        Cidade c = this.lista.get(rowIndex);

        if (this.COLUMN_CODIGO == columnIndex) {
            return c.getIdCidade();
        }
        if (this.COLUMN_DESCRICAO == columnIndex) {
            return c.getCidade();
        }
        if (this.COLUMN_UF == columnIndex) {
            return c.getUf();
        }
        return c.getCidade();
    }

    @Override
    public void setValueAt(Object obj, int linha, int coluna) {
        Cidade c = lista.get(linha);
        switch (coluna) {
//            case 0: // Primeira coluna é o codigo.
//                a.setIdArrolado(Integer.parseInt((String) obj));
//                break;
            case 1: // Segunda coluna é o cidade.
                c.setCidade(obj.toString());
                break;
            case 2: // Segunda coluna é o uf.
                c.setUf(obj.toString());
                break;
        }
        this.fireTableCellUpdated(linha, coluna);
    }

    public void removeRow(int linha) {
        this.lista.remove(linha);
        this.fireTableRowsDeleted(linha, linha);
    }

}

Aqui Método atualiza

  • public void atualizar() throws SQLException {
  •        if (view.getTabela().getSelectedRow() != -1) {
              if (dao.verificaAlterar(instanciaObjClasseComId()) == true) {
                   JOptionPane.showMessageDialog(null, "Não foi possivel editar, registro já existente!",
                           "Verificação ao Editar", JOptionPane.ERROR_MESSAGE);
               } else {
                   dao.alterar(instanciaObjClasseComId());
                   helper.limparCampos(view.getPnlPesquisarPor());
                   int id = view.getTabela().convertRowIndexToModel(view.getTabela().getSelectedRow());
                   modelTable.setValueAt(instanciaObjClasseComId(), id, 0);
                   modelTable.setValueAt(instanciaObjClasseComId(), id, 1);
                   modelTable.setValueAt(instanciaObjClasseComId(), id, 2);
                  modelTable.fireTableDataChanged();
                   JOptionPane.showMessageDialog(null, "Alteracão realizado com sucesso!",
                           "Alteração", JOptionPane.INFORMATION_MESSAGE);
                   setarEstadoComponentes(1);
               }
           }
      }

Como está implementado o método instanciaObjClasseComId()?

Não use o toString(), use a propriedade adequada.

Não entendi porque você chama o setValueAt após atualizar o objeto.
Se é a mesma referência, não precisa fazer isso, pois o objeto já estará atualizado, basta dar um refresh na table.

O setValueAt serve pra você tratar a edição das células da JTable.