Avatar billede foo_baa Nybegynder
17. september 2002 - 10:16 Der er 6 kommentarer

jtree + tæl nodes

Findes der ikke en funktion, der kan tælle ALLE nodes i et jtree, da getrowcount() ikke tæller alle men kun dem der er expanded ??
Avatar billede jword Nybegynder
17. september 2002 - 10:47 #1
Nej, men du kan få det ved at gå igennem din treemodel. Altså lav en metode der tager rootnoden, får antallet af children, tester hver child-node om det er en leaf eller ikke, og hvis den ikke er en leaf, søg videre fra denne. Osv osv.
Avatar billede mosquito Nybegynder
17. september 2002 - 12:59 #2
du kan formodentlig bruge en iterator this du kun skal tælle dine nodes.. prøv API for info.. jeg kender ikke selv så meget til metoden
Avatar billede mosquito Nybegynder
17. september 2002 - 13:00 #3
jeg mener selvfølgelig klassen iterator
Avatar billede foo_baa Nybegynder
18. september 2002 - 17:26 #4
ok
Avatar billede peterdelphi Nybegynder
12. februar 2005 - 16:38 #5
Enumeration num = root.breadthFirstEnumeration(); // laver en linær liste med alle dine noder, som du så kan gå igennem...
int count = 0;
while (num.hasMoreElements()) {
  count++;
}

System.out("count: " + count);
Avatar billede peterdelphi Nybegynder
12. februar 2005 - 16:45 #6
Tillæg...

root er selvfølgelig:
DefaultMutableTreeNode root;  // råden i træet...

Fejl i koden...
Sådan skal det se ud:
     
Enumeration num = root.breadthFirstEnumeration();
int count = 0;
DefaultMutableTreeNode node = null;

while (num.hasMoreElements()) {
  node = (DefaultMutableTreeNode)num.nextElement();

  if (node.getLevel() == 1) // tæller alle noder på niveau 1...
    count++;
}
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