Olá Pessoal!
Tenho um a tela que lista funcionarios apontados em obras (Apontamentos) em uma jTable, e estou usando a AbstractTableModel para criar o modelo da tabela, eu queria pegar uma lista de Apontamentos selecionados na tabela. Segue a classe do modelo da tabela e o método que estou tentando desenvolver, mas esse retorna null:
public class ApontamentosTableModel extends AbstractTableModel {
private List<Apontamento> apontamentos = new ArrayList<>();
private String[] colunas = {"Id", "Chapa", "Funcionário", "Função", "Data",
"Nome CC", "Status", "Líder", "Atividade"};
@Override
public String getColumnName(int column) {
return colunas[column];
}
@Override
public int getRowCount() {
return apontamentos.size();
}
@Override
public int getColumnCount() {
return colunas.length;
}
@Override
public Object getValueAt(int linha, int coluna) {
switch (coluna) {
case 0:
return apontamentos.get(linha).getCodApont();
case 1:
return apontamentos.get(linha).getFuncionario().getChapa();
case 2:
return apontamentos.get(linha).getFuncionario().getNome();
case 3:
return apontamentos.get(linha).getFuncionario().getFuncao().getNome();
case 4:
if (apontamentos.get(linha).getData() != null) {
return apontamentos
.get(linha)
.getData()
.format(DateTimeFormatter
.ofPattern("dd/MM/yyyy HH:mm"));
} else {
return apontamentos.get(linha).getData();
}
case 5:
return apontamentos.get(linha).getCentroCusto().getNome();
case 6:
return apontamentos.get(linha).getStatusApont().getCodStatusApont();
case 7:
return apontamentos.get(linha).getLider().getNome();
case 8:
return apontamentos.get(linha).getAtividade();
}
return null;
}
public List<Apontamento> getApontamentos() {
return Collections.unmodifiableList(apontamentos);
}
public void addRow(Apontamento a) {
this.apontamentos.add(a);
this.fireTableDataChanged();
}
public void removeRow(Apontamento a) {
this.apontamentos.remove(a);
this.fireTableDataChanged();
}
public void clear() {
this.apontamentos.clear();
this.fireTableDataChanged();
}
}
public ArrayList getApontamentosSelecionados() {
if (jtaApontamentos.getSelectedRow() == -1) {
return null;
}
ArrayList apontamentos = new ArrayList<>();
int[] selecao = jtaApontamentos.getSelectedRows();
for (int i = 0; i < selecao.length; i++) {
apontamentos.add((Apontamento) aTableModel.getValueAt(selecao[i], 0));
}
return apontamentos;
}