classe impliquée dans l'utilisation DTree sont les suivantes:
- la classe elle-même
JTree
qui fournit l'élément affichable dont vous avez besoin et il fonctionne exactement comme les tables et listes Swing: ils ont un modèle!
- le
DefaultTableModel implements TableModel
qui fonctionne comme un conteneur de données pour un JTree
. Il est istancé avec un nœud racine, puis tous les enfants sont ajoutés au nœud racine ou aux autres nœuds contenus dans l'arbre.
- le
DefaultMutableTreeNode
qui est une implémentation par défaut à usage général pour un nœud JTree générique.
Comment mélanger ces choses? Tout d'abord, je vous suggère de vérifier guide soleil java à ce sujet here mais d'avoir un rapide coup d'oeil, vous pouvez penser à avoir quelque chose comme ceci:
// this is the root of your tree
DefaultMutableTreeNode root = new DefaultMutableTreeNode("Books");
for (Book b : books)
{
// this adds every book to the root node
DefaultMutableTreeNode curBook = new DefaultMutableTreeNode(b);
root.add(curBook);
// this adds every chapter to its own book
for (Chapter c : b.chapters())
curBook.add(new DefaultMutableTreeNode(c));
}
// at this point you have your tree ready, you just have to setup the model and create the effective JTree
DefaultTreeModel treeModel = new DefaultTreeModel(root);
JTree tree = new JTree(treeModel);
//now you tree is ready to be used
approche est vraiment identique à celui que vous utilisez pour JTable
ou JList
aussi si la structure de données (et donc le modèle) diffère. Pensez-y que c'est la par défaut façon de le faire mais vous pouvez facilement écrire votre propre classe TreeNode
ou TreeModel
selon ce dont vous avez vraiment besoin. Je voudrais vous faire savoir que le guide du soleil sur java contient presque tous les sujets contenus dans le JDK de base, donc c'est une bonne chose de le regarder avant de se sentir perdu.