Hey
Ik heb een stukje in mijn DomeinBeheerder die vragen moet aanlever op aanvraag van een (niet verder bepaalde) GUI.
Ik werk als volgt:
Code:
private Vraag huidigeVraag;
private List<Vraag> vragen;
private ListIterator<Vraag> vragenIterator;
....
public Vraag getVorigeVraag() {
if(vragen == null)
vragen = getVragen();
if(vragenIterator == null)
vragenIterator = vragen.listIterator();
if(vragenIterator.hasPrevious())
huidigeVraag = vragenIterator.previous();
return huidigeVraag;
}
public Vraag getVolgendeVraag() {
if(vragen == null)
vragen = getVragen();
if(vragenIterator == null)
vragenIterator = vragen.listIterator();
if(vragenIterator.hasNext())
huidigeVraag = vragenIterator.next();
return huidigeVraag;
}
Nu, als ik altijd de volgende neem, geen probleem. Als ik altijd de vorige neem, geen probleem.
Als ik echter wissel tussen vorige en volgende krijg ik eerst nog 1x het oude object terug.
Voorbeeld:
Code:
public StartUp()
{
// (new HoofdFrame(new DomeinController())).setVisible(true);
vraag = new ObservableString();
vraag.addObserver(this);
vraag.setString(DomeinBeheerder.getInstance().getVolgendeVraag().getVraagTekst());
vraag.setString(DomeinBeheerder.getInstance().getVolgendeVraag().getVraagTekst());
vraag.setString(DomeinBeheerder.getInstance().getVolgendeVraag().getVraagTekst());
vraag.setString(DomeinBeheerder.getInstance().getVolgendeVraag().getVraagTekst());
vraag.setString(DomeinBeheerder.getInstance().getVolgendeVraag().getVraagTekst());
vraag.setString(DomeinBeheerder.getInstance().getVolgendeVraag().getVraagTekst());
vraag.setString(DomeinBeheerder.getInstance().getVolgendeVraag().getVraagTekst());
vraag.setString(DomeinBeheerder.getInstance().getVolgendeVraag().getVraagTekst());
vraag.setString(DomeinBeheerder.getInstance().getVolgendeVraag().getVraagTekst());
vraag.setString(DomeinBeheerder.getInstance().getVolgendeVraag().getVraagTekst());
vraag.setString(DomeinBeheerder.getInstance().getVolgendeVraag().getVraagTekst());
vraag.setString(DomeinBeheerder.getInstance().getVolgendeVraag().getVraagTekst());
vraag.setString(DomeinBeheerder.getInstance().getVolgendeVraag().getVraagTekst());
vraag.setString(DomeinBeheerder.getInstance().getVorigeVraag().getVraagTekst());
}
public void update(Observable o, Object arg){
System.out.println(vraag.toString());
}
(deze klasse is een Observer en de String is Observable, vandaar dat de 'update'.
Geeft dit terug:
1. Hoe groot is je huis?
2. Hoeveel mensen wonen er in je huis?
3. Wat eet je thuis?
4. Hoe vaak eet je vlees of vis?
5. Welke brandstof gebruikt je verwarming?
6. Voor welke afsand gebruikt je gezin gemiddeld de auto?
7. Hoe vaak maakt je gezin gebruik van het openbaar vervoer?
8. Waar breng je je vakantie door?
9. Hoe vaak gebruik je zuivel?
10. Let je erg op uw elektriciteitsvebruik?
10. Let je erg op uw elektriciteitsvebruik?
10. Let je erg op uw elektriciteitsvebruik?
10. Let je erg op uw elektriciteitsvebruik?
10. Let je erg op uw elektriciteitsvebruik?
De laatste zou dus terug 9 moeten zijn, maar dat doet het niet...
Iemand een idee?
Alvast Bedankt!
Bart