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); } } }