Cette méthode fonctionne comme prévu - il crée un JTree avec un nœud racine et deux enfants conteneur noeuds (chacun avec un nœud feuille respective):Java Swing JTree Expansion
private JComponent createSideBar()
{
final DefaultMutableTreeNode top = new DefaultMutableTreeNode("Projects");
final JTree tree = new JTree(top);
DefaultMutableTreeNode project = new DefaultMutableTreeNode("project 1");
DefaultMutableTreeNode version = new DefaultMutableTreeNode("version 1");
project.add(version);
top.add(project);
TreePath treePath = new TreePath(project.getPath());
// tree.expandPath(treePath);
project = new DefaultMutableTreeNode("project 2");
version = new DefaultMutableTreeNode("version 2");
project.add(version);
top.add(project);
return tree;
}
Dans ce cas, l'arbre commence dehors fermé. Je voudrais l'application de commencer par tous les noeuds I sont entièrement développés alors commencé en ajoutant ce qui suit:
tree.expandPath(treePath);
mais quand je Décommentez depuis le code ci-dessus, le second jeu de nœuds enfants ne montrent pas en haut, à savoir: le projet 2 et la version 2 n'apparaissent pas. En fait, tous les nœuds ajoutés par la suite n'apparaissent jamais.
Pour ce que ça vaut, j'utilise JDK 1.5. De la docs, je ne peux pas voir de restrictions ou pourquoi cette méthode aurait de tels effets négatifs ... Je vais essayer de regarder la source, mais j'espérais que quelqu'un pourrait avoir une bonne idée de quoi et pourquoi est le comportement attendu. Je me demande si chaque nœud suivant 'add' est en quelque sorte interdit - mais je ne peux pas imaginer que cela fonctionnerait pour la plupart des cas d'utilisation.
Merci,
-Luther
+1, je ne le savais pas. –