Estou precisando descobrir se o usuário fez alguma alteração de valor em uma JTable com AsbtractTableModel, pois, ao perceber que algo foi modificado 1 botão da aplicação sera ativado(setEnabled(true)), que será o botão de salvar as alterações, ao qual fará update no BD!
porém não sei como perceber que algo foi modificado para deixar o botão enabled.
Minhas classe de Model está assim:
public class clsTecnicoModel extends AbstractTableModel
{
private static final int COL_NOME = 0;
private static final int COL_CARGO = 1;
private static final int COL_ESTADO = 2;
private static final int COL_CIDADE = 3;
private static final int COL_BAIRRO = 4;
private static final int COL_RUA = 5;
private static final int COL_NUMERO = 6;
private static final int COL_TELEFONE = 7;
private static final int COL_CELULAR = 8;
private static final int COL_ADMISSAO = 9;
private static final int COL_SALARIO = 10;
private static final int COL_STATUS = 11;
//Lista de objetos da classe "clsTecnico"
private List<clsTecnico> valores;
public clsTecnicoModel(List<clsTecnico> valores)
{
this.valores = new ArrayList<clsTecnico>(valores);
}
public int getRowCount()
{
//Qtd. de linhas
return valores.size();
}
public int getColumnCount()
{
//Qtd. de colunas
return 12;
}
@Override
public String getColumnName(int columnIndex)
{
//Nome das colunas
if (columnIndex == COL_NOME) return "Nome";
if (columnIndex == COL_CARGO) return "Cargo";
if (columnIndex == COL_ESTADO) return "Estado";
if (columnIndex == COL_CIDADE) return "Cidade";
if (columnIndex == COL_BAIRRO) return "Bairro";
if (columnIndex == COL_RUA) return "Rua";
if (columnIndex == COL_NUMERO) return "Número";
if (columnIndex == COL_TELEFONE) return "Telefone";
if (columnIndex == COL_CELULAR) return "Celular";
if (columnIndex == COL_ADMISSAO) return "Admissão";
if (columnIndex == COL_SALARIO) return "Salário";
if (columnIndex == COL_STATUS) return "Status";
return "";
}
@Override
public Object getValueAt(int rowIndex,int columnIndex)
{
clsTecnico objTecnico = valores.get(rowIndex);
//Get de valor
if (columnIndex == COL_NOME) return objTecnico.getNome();
if (columnIndex == COL_CARGO) return objTecnico.getCargo();
if (columnIndex == COL_ESTADO) return objTecnico.getEstado();
if (columnIndex == COL_CIDADE) return objTecnico.getCidade();
if (columnIndex == COL_BAIRRO) return objTecnico.getBairro();
if (columnIndex == COL_RUA) return objTecnico.getRua();
if (columnIndex == COL_NUMERO) return objTecnico.getNumero();
if (columnIndex == COL_TELEFONE) return objTecnico.getTelefone();
if (columnIndex == COL_CELULAR) return objTecnico.getCelular();
if (columnIndex == COL_ADMISSAO) return objTecnico.getAdmissao();
if (columnIndex == COL_SALARIO) return objTecnico.getSalario();
if (columnIndex == COL_STATUS) return objTecnico.getStatus();
return "";
}
@Override
public void setValueAt(Object aValue, int rowIndex,int columnIndex)
{
clsTecnico objTecnico = valores.get(rowIndex);
//Set de valor
if (columnIndex == COL_NOME) objTecnico.setNome(aValue.toString());
if (columnIndex == COL_CARGO) objTecnico.setCargo(aValue.toString());
if (columnIndex == COL_ESTADO) objTecnico.setEstado(aValue.toString());
if (columnIndex == COL_CIDADE) objTecnico.setCidade(aValue.toString());
if (columnIndex == COL_BAIRRO) objTecnico.setBairro(aValue.toString());
if (columnIndex == COL_RUA) objTecnico.setRua(aValue.toString());
if (columnIndex == COL_NUMERO) objTecnico.setNumero(aValue.toString());
if (columnIndex == COL_TELEFONE) objTecnico.setTelefone(aValue.toString());
if (columnIndex == COL_CELULAR) objTecnico.setCelular(aValue.toString());
if (columnIndex == COL_SALARIO) objTecnico.setSalario(Double.valueOf(aValue.toString()));
if (columnIndex == COL_STATUS) objTecnico.setStatus(Integer.valueOf(aValue.toString()));
}
@Override
public Class<?> getColumnClass(int columnIndex)
{
return String.class;
}
@Override
public boolean isCellEditable(int rowIndex, int columnIndex)
{
//Permite edição
return true;
}
public clsTecnico get(int rowIndex)
{
//Valor da linha inteira
return valores.get(rowIndex);
}
}