Olá colegas,
Desenvolvi um sistema simples de boletim escolar. Conforme os dados são inseridos nas textfields ao clicar no botão Resultado, deverá mostrar em uma JTable. O problema é que a última coluna (resultado) da JTable tem que estar dentro de uma condição if/else para setar se o aluno está “aprovado”, “em recuperação” ou “reprovado conforme a condição”. Estou com dificuldades em descobrir qual é o método correto que seta este resultado de forma dinâmica. Segue o código:
private void btnSalvarActionPerformed(java.awt.event.ActionEvent evt) {
String aluno = txtAluno.getText();
String selecionado = cmbDisciplinas.getSelectedItem().toString();
String resultado = "";
int qtdeFaltas = Integer.parseInt(txtQtdeFaltas.getText());
double n1 = Double.parseDouble(txtN1.getText());
double n2 = Double.parseDouble(txtN2.getText());
int cargaHor = Integer.parseInt(jlCargaHor.getText());
double media = (n1 + n2) / 2;
Object[] dadosInseridos = new Object[]{
aluno, //indice 0
media, //indice 1
selecionado, //índice 2
qtdeFaltas, //índice 3
resultado //índice 4
};
//Criar uma variável do tipo DefautTableModel,
//para obter os dados do modelo da tabela e converter
DefaultTableModel tabelaProduto = (DefaultTableModel) tblBoletim.getModel();
//Mostra os dados na tabela
tabelaProduto.addRow(dadosInseridos);
double freq = (cargaHor * 25) / 100;
if ((media >= 6) && (qtdeFaltas < freq)) {
resultado = "Aprovado";
tblBoletim.setValueAt(resultado, 0, 4);
} else if ((media < 6) && (qtdeFaltas <= freq)) {
resultado = "Em Recuperação!";
} else {
resultado = "Reprovado!";
}
}
Conforme o código e o print acima, o sistema funciona somente para a primeira linha, porque está setando de forma estática, obtendo os valores do índice e coluna, qual seria o método para setar o valor de forma dinâmica do índice e coluna?