Bom dia amigos,
Estou com um problema no TableModel de uma aplicação que estou desenvolvendo. A aplicação gera um Diário de Classe com um array de alunos, cada aluno tem uma array de aulas. Aí começam os problemas, pois dependendo da disciplina o número de aulas varia. A tabela deve ter a primeira coluna com o nome do aluno e uma coluna para cada dia de aula, onde eu coloco se ele teve presença ou falta. Por causa do nº variável de colunas eu não tive como implementar o um switch no método public Object getValueAt(int rowIndex, int columnIndex) então eu fiz um If com o columIndex se ele dor igual a zero retorna o nome do aluno, se for maior que zero ele retorna as aulas. O problema é que ele está dando Index out of Bounds.
Abaixo segue o meu TableModel se alguém puder me ajudar agradeço muito.
public class DiarioClasseTableModel extends AbstractTableModel {
ArrayList<Aula> vAula;
ArrayList<Aluno> vAlunos;
public DiarioClasseTableModel(ArrayList<Aluno> vAluno) {
this.vAlunos = vAluno;//Recebe o array de alunoa
this.vAula = vAlunos.get(0).getvAula();//pega o array de aulas do primeiro aluno para saber o número de colunas que que a tabela terá
}
public int getRowCount() {
return vAlunos.size();
}
public int getColumnCount() {
return vAula.size() + 1;//define o número de colunas acrescido de uma que é o nome do aluno
}
public Object getValueAt(int rowIndex, int columnIndex) {
Aluno umAluno = vAlunos.get(rowIndex);
vAula = umAluno.getvAula();
if (columnIndex == 0) {//se o columnIndex for zero ele retorna o nome do aluno
return umAluno.getNome();
} else {//se não ele retorna as faltas e presenças do aluno no dia da aula
Aula umaAula = vAula.get(columnIndex);
return umaAula.retornaFP();
}
}
}
Att
Marcelo Logan