Avatar billede gorlist Nybegynder
03. december 2001 - 13:44 Der er 6 kommentarer og
1 løsning

Iterator igen-igen

I en klasse Liste har jeg følgende constructor:

public Liste() {
    super();
    kunder = new LinkedList();
    iterator = kunder.listIterator();
}

Listen (kunder) sendes med til KundeGUI (brugergrænsefladen) hvor jeg vha. knapper skal vise kundens data i textfelter. F.eks.:

public void jButtonåbn_ActionEvents() {
    Liste l = new Liste();
    l.indsætkunder(kunder);
    this.kunder = l.getkunder();
    Kunde k = (Kunde)(kunder.getFirst());
    ivjJTextFieldnummer.setText(k.getnummer());
    ivjJTextFieldnavn.setText(k.getnavn());
    ivjJTextFieldtelefon.setText(k.gettelefon());
}

//ovenstående fungerer fint

Desuden skal jeg kunne bladre i listen vha. iteratoren:

public void jButtonnæste_ActionEvents() {
    Kunde k = (Kunde)kunder.listIterator().next();
    ivjJTextFieldnummer.setText(k.getnummer());
    ivjJTextFieldnavn.setText(k.getnavn());
    ivjJTextFieldtelefon.setText(k.gettelefon());
}

Mit spg. lyder: Er ovenstående korrekt opfattet mht. iteratorbrug? Jeg kan bare ikke få skidtet til at fungere / bladre.
Avatar billede disky Nybegynder
03. december 2001 - 13:53 #1
nej det er det ikke.

ret til:

public void jButtonnæste_ActionEvents() {
if(itaretor!=null && iterator().hasNext())
{
    Kunde k = (Kunde)kunder=iterator.next();
    ivjJTextFieldnummer.setText(k.getnummer());
    ivjJTextFieldnavn.setText(k.getnavn());
    ivjJTextFieldtelefon.setText(k.gettelefon());
}
}



Avatar billede disky Nybegynder
03. december 2001 - 13:54 #2
Ellers så ser du altid kun den første da du hele tiden beder om en ny iterator.

Grunden til jeg checker på om den er null skyldes, at du ellers får en exception hvis \'iterator\' ikke er blevet instantieret.
Avatar billede disky Nybegynder
03. december 2001 - 13:54 #3
ret lige if til:

if(iterator!=null && iterator().hasNext())


tastefejl
Avatar billede gorlist Nybegynder
03. december 2001 - 14:08 #4
Kunde k = (Kunde)kunder=iterator.next();

Skal det være:

Kunde k = (Kunde)kunder.iterator().next();

????
Avatar billede disky Nybegynder
03. december 2001 - 14:26 #5
næsten

Kunde k = (Kunde)iterator().next();

Avatar billede gorlist Nybegynder
03. december 2001 - 17:30 #6
Det virker ikke...hmmmm.
Avatar billede disky Nybegynder
03. december 2001 - 18:00 #7
så er der fejl andet steds i din kode.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester