@Giovanni_Chrispin escreveu:
Bom dia, estou tentando editar uma célula de uma coluna, mas ao editar com o valor novo ele retorna para o valor antigo. estou usando as seguintes classes:
classe TableModel: /* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package Model; import java.util.ArrayList; import javax.swing.table.AbstractTableModel; /** * * @author Giovanni.Chrispin */ public class TableModel extends AbstractTableModel{ private ArrayList linhas = null; private String[] colunas = null; public TableModel(ArrayList lin, String[] col){ setLinhas(lin); setColunas(col); } public ArrayList getLinhas(){ return linhas; } public void setLinhas (ArrayList dados){ linhas = dados; } public String[] getColunas(){ return colunas; } public void setColunas (String[] nomes){ colunas = nomes; } public int getColumnCount(){ return colunas.length; } public int getRowCount(){ return linhas.size(); } public String getColumnName(int numCol){ return colunas[numCol]; } public Object getValueAt(int numLin, int numCol){ Object[] linha = (Object[])getLinhas().get(numLin); return linha[numCol]; } public boolean isCellEditable(int numLin, int numCol){ return true; } }
Metodo para gerar parcelas e preencher jtable:
public void preencherTabela() { ArrayList dados = new ArrayList(); String[] colunas = new String[]{"ID", "DATA", "VALOR"}; String data = jFormattedTextField_data.getText(); String dia, mes, ano; dia = "" + data.charAt(0) + data.charAt(1) + "/"; mes = "" + data.charAt(3) + data.charAt(4); ano = "/" + data.charAt(6) + data.charAt(7) + data.charAt(8) + data.charAt(9); int anoInt = Integer.parseInt("" + data.charAt(6) + data.charAt(7) + data.charAt(8) + data.charAt(9)); int mesInt = Integer.parseInt(mes); while (i <= quantidadeParcela) { if (mesInt < 10) { dados.add(new Object[]{i, dia + "0" + mesInt + "/" + anoInt, nf.format(valorParcela)}); } else { dados.add(new Object[]{i, dia + mesInt + "/" + anoInt, nf.format(valorParcela)}); } mesInt++; if (mesInt > 12) { anoInt++; mesInt = 1; } i++; cont++; } TableModel modelo = new TableModel(dados, colunas); jTable_parcelas.setModel(modelo); jTable_parcelas.getColumnModel().getColumn(0).setPreferredWidth(50); jTable_parcelas.getColumnModel().getColumn(0).setResizable(false); jTable_parcelas.getColumnModel().getColumn(1).setPreferredWidth(200); jTable_parcelas.getColumnModel().getColumn(1).setResizable(false); jTable_parcelas.getColumnModel().getColumn(2).setPreferredWidth(180); jTable_parcelas.getColumnModel().getColumn(2).setResizable(false); jTable_parcelas.getTableHeader().setReorderingAllowed(false); jTable_parcelas.setAutoResizeMode(jTable_parcelas.AUTO_RESIZE_OFF); jTable_parcelas.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); }
Mensagens: 5
Participantes: 2