Olá pessoal,
Preciso criar um método para excluir uma linha selecionada usando o AbstractTableModel, alguém poderia me orientar.
Segue abaixo os trechos do fonte:
public class AdmTableModel extends AbstractTableModel {
//Variaveis
private static final int COL_ID = 0;
private static final int COL_LOGIN = 1;
private static final int COL_NOME = 2;
private final List<Administrador> lista;
//Criando o construtor da classe
public AdmTableModel(List<Administrador> valores) {
this.lista = new ArrayList<>(valores);
}
@Override
public int getRowCount() {
return lista.size();
}
@Override
public int getColumnCount() {
return 3;
}
@Override
public String getColumnName(int column) {
//Variaveis
String cNomeCol = "";
//Verifica o nome da coluna
if (column == COL_ID){
cNomeCol = "Código";
}else if(column == COL_LOGIN){
cNomeCol = "Login";
}else if(column == COL_NOME){
cNomeCol = "Nome";
}else{
cNomeCol = ""; //Nunca deve ocorrer
}
return cNomeCol;
}
@Override
public Object getValueAt(int rowIndex, int columnIndex) {
//Instanciando o objeto
Administrador objAdm = lista.get(rowIndex);
//Verificando o valor de cada coluna
if (columnIndex == COL_ID){
return objAdm.getCod();
}else if(columnIndex == COL_LOGIN){
return objAdm.getLogin();
}else{
return ""; //Nunca deve ocorrer
}
}
@Override
public void setValueAt(Object valor, int rowIndex, int columnIndex) {
Administrador objAdm = lista.get(rowIndex);
if (columnIndex == COL_ID){
objAdm.setCod(valor.toString());
}else if(columnIndex == COL_LOGIN){
objAdm.setLogin(valor.toString());
}
fireTableCellUpdated(rowIndex, columnIndex);
}
@Override
public Class<?> getColumnClass(int columnIndex) {
return String.class;
}
@Override
public boolean isCellEditable(int rowIndex, int columnIndex) {
return false;
}
public Administrador get(int row) {
return lista.get(row);
}
public void removeRow(int row) {
this.lista.remove(row);
this.fireTableRowsDeleted(row, row);
}
}
private void btnExcluirMouseClicked(java.awt.event.MouseEvent evt) {
int nSel = objTBAdm.getSelectedRow();
objModel.removeRow(nSel);
}