Devo scrivere un progetto per la gestione degli esami degli studenti di un corso di laurea.
In parole povere ho creato una classe Studente contenente i dati anagrafici, una classe Elenco (extends ArrayList) in cui, appunto, inserisco tutti gli studenti.
Ho qualche problema con i metodi set e get dell'ultima classe descritta cioè: quando inserisco nella maschera di input i dati degli studenti nei vari textField e clicco il button "Aggiungi", in console ricevo l'errore:
- Exception in thread "AWT-EventQueue-0" java.lang.StackOverflowError
at studenti.ElencoStudenti.getMatricola(ElencoStudent i.java:41)"
Allego l'immagine della maschera e inserisco il frammento di codice del bottone "Aggiungi" e il codice relativo alla classe Elenco
codice:
private void bottoneAggiungiActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
e.addStudente(matricola.getText(), cognome.getText(), nome.getText(), appello.getSelectedItem(), voto.getSelectedItem());
if (d.exists() != true) {
d.newDoc();
try {
d.scrivi(e, i);
} catch (IOException ex) {
Logger.getLogger(mainFrame.class.getName()).log(Level.SEVERE, null, ex);
}
} else {
try {
d.scrivi(e, i);
} catch (IOException ex) {
Logger.getLogger(mainFrame.class.getName()).log(Level.SEVERE, null, ex);
}
}
i++;
matricola.setText("");
cognome.setText("");
nome.setText("");
appello.setSelectedIndex(0);
voto.setSelectedIndex(0);
}
codice:
public class ElencoStudenti extends ArrayList {
public void addStudente(String matricola, String cognome, String nome, Object appello, Object voto) {
Studente st = new Studente(matricola, cognome, nome, appello, voto);
this.add(st);
}
public void setMatricola(int i, String matricola) {
this.set(i, matricola);
}
public void setCognome(int i, String cognome) {
this.set(i, cognome);
}
public void setNome(int i, String nome) {
this.set(i, nome);
}
public void setVoto(int i, Object voto) {
this.set(i, voto);
}
public void setAppello(int i, Object appello) {
this.set(i, appello);
}
public String getMatricola(int i) {
return this.getMatricola(i);
}
public String getCognome(int i) {
return this.getCognome(i);
}
public String getNome(int i) {
return this.getNome(i);
}
public Object getVoto(int i) {
return this.getVoto(i);
}
public Object getAppello(int i) {
return this.getAppello(i);
}
}
Qualcuno potrebbe indirizzarmi verso la giusta via?
PS. spero di non aver sbagliato nulla nella creazione di tale topic (è il mio primo messaggio non mi mangiate!)