класс участвует в JTree использования является следующим:
- самого
JTree
класс, который обеспечивает отображаемый нужные вам пункт, и он работает точно так же, как таблицы и списки в колебании: у них есть модель!
DefaultTableModel implements TableModel
, который работает как контейнер данных для JTree
. Он связан с корневым узлом, затем каждый ребенок добавляется к корневому узлу или к другим узлам, содержащимся в дереве.
DefaultMutableTreeNode
, который является реализацией по умолчанию общего назначения для общего узла JTree.
Как смешивать эти вещи? Прежде всего, я предлагаю вам проверить Java руководство солнца об этом here но иметь быстрый взгляд вы можете думать о том, что-то вроде этого:
// 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
подход действительно идентичен тому, который вы используете для JTable
или JList
также если структура данных (и так модель) отличается. Подумайте, что это по умолчанию способ сделать это, но вы можете легко написать свой собственный TreeNode
или TreeModel
класс в соответствии с тем, что вам действительно нужно.
Я хотел бы сообщить вам, что руководство по солнцу о java содержит почти каждую тему, содержащуюся в базовом JDK, так что это хорошая вещь, чтобы придать ей вид, прежде чем почувствовать себя потерянным.