Ma question est : si ces deux fonctions ont quelque chose de différent ? Je veux dire que je sais qu'elles renvoient quelque chose de différent, mais est-il possible que le nombre d'éléments dans l'une soit différent de celui de l'autre ? Je vais essayer d'expliquer. J'ai implémenté TreeModel pour l'une de mes classes en essayant de créer une belle vue sur les fichiers sur le PC en me basant sur JTree. Voici une partie de celui-ci :
public Object getChild(Object parent, int index) {
File[] children = ((File) parent).listFiles();
if(children == null || index < 0 || index >= children.length) {
return null;
}
File result = new MyFile(children[index]);
return result;
}
public int getChildCount(Object parent) {
//---
//String[] children = ((File)parent).list();
File[] children = ((File)parent).listFiles();
//---
if(children == null) {
return 0;
}
return children.length;
}
J'ai marqué le code intéressant. Si je change ces deux lignes pour celles commentées, parfois j'obtiens une NullPointerException
après le chargement de TreeModel : jtree.setModel(treeModel);
. Celle commentée ne pose aucun problème. J'ai vérifié la documentation et elle ne mentionne rien d'inhabituel, y compris le fait de renvoyer null par les deux méthodes. Que se passe-t-il ici ?