/** * Metoden registrerer oppgaver for en navngitt student. Brukerinput kontrolleres ved at det må * kunne tolkes som et tall. Registreringsmetoden (i klassen Student) kan kaste unntaksobjekt * IllegalArgumentException. Dette fanges også opp. I begge tilfeller må brukeren gjenta * inntasting inntil ok data. Endelig skrives det ut en melding om antall oppgaver studenten nå * har registrert. */ private void registrerOppgaver(String studNavn) { String melding = "Oppgi antall nye oppgaver som skal godkjennes for " + studNavn + ": "; int antOppgØkning = 0; boolean registrert = false; do { // gjentar inntil registrering aksepteres av objektet oversikt try { antOppgØkning = lesHeltall(melding); oversikt.increaseNumTasks( studNavn, antOppgØkning); // kan ikke returnere false, pga navn alltid gyldig registrert = true; // kommer hit bare dersom exception ikke blir kastet } catch ( IllegalArgumentException e) { // kommer hit hvis studenter får negativt antall oppgaver melding = "Du skrev " + antOppgØkning + ". \nIkke godkjent økning for " + studNavn + ". Prøv igjen: "; } } while (!registrert); melding = "Totalt antall oppgaver registrert på " + studNavn + " er " + oversikt.getNumTasks(studNavn) + "."; showMessageDialog(null, melding); }
/** * Metoden registrere ny student. Hvis student med dette navnet allerede eksisterer, skjer ingen * registrering. Resultatet av operasjonen skrives ut til brukeren. */ private void registrerNyStudent() { String navnNyStud = null; do { navnNyStud = showInputDialog("Oppgi navn: "); } while (navnNyStud == null); navnNyStud = navnNyStud.trim(); if (oversikt.regNewStudent(navnNyStud)) { showMessageDialog(null, navnNyStud + " er registrert."); String[] alleNavn = oversikt.getAllNames(); String[] nyMuligeValg = new String[alleNavn.length + 2]; for (int i = 0; i < alleNavn.length; i++) { nyMuligeValg[i] = alleNavn[i]; } nyMuligeValg[alleNavn.length] = NY_STUDENT; nyMuligeValg[alleNavn.length + 1] = AVSLUTT; muligeValg = nyMuligeValg; } else { showMessageDialog(null, navnNyStud + " er allerede registrert."); } }
/** * Metoden leser inn valget som en streng, og returnerer den. Valget skal være argument til * metoden utførValgtOppgave(). Hvis programmet skal avsluttes, returneres null. */ public String lesValg() { int antStud = oversikt.getNumStud(); String valg = (String) showInputDialog( null, "Velg fra listen, " + antStud + " studenter:", "Godkjente oppgaver", DEFAULT_OPTION, null, muligeValg, muligeValg[0]); if (AVSLUTT.equals(valg)) { valg = null; } return valg; }