JTree tree = new JTree(); tree.setDragEnabled(true); tree.setDropMode(DropMode.ON_OR_INSERT); tree.setTransferHandler(new TreeTransferHandler()); tree.getSelectionModel().setSelectionMode( TreeSelectionModel.CONTIGUOUS_TREE_SELECTION); expandTree(tree); return new JScrollPane(tree); (DefaultMutableTreeNode)tree.getModel().getRoot(); Enumeration e = root.breadthFirstEnumeration(); while(e.hasMoreElements()) { DefaultMutableTreeNode node = (DefaultMutableTreeNode)e.nextElement(); if(node.isLeaf()) continue; int row = tree.getRowForPath(new TreePath(node.getPath())); tree.expandRow(row); (DefaultMutableTreeNode)dest.getLastPathComponent(); TreePath path = tree.getPathForRow(selRows[0]); DefaultMutableTreeNode firstNode = (DefaultMutableTreeNode)path.getLastPathComponent(); if(firstNode.getChildCount() > 0 && target.getLevel() < firstNode.getLevel()) { model.removeNodeFromParent(nodesToRemove[i]); model.insertNodeInto(nodes[i], parent, index++);
private boolean areSiblingsSelected(TreePath path) { TreePath parent = path.getParentPath(); if (parent == null) { return true; } Object node = path.getLastPathComponent(); Object parentNode = parent.getLastPathComponent(); int childCount = model.getChildCount(parentNode); for (int i = 0; i < childCount; i++) { Object childNode = model.getChild(parentNode, i); if (childNode == node) { continue; } if (!isPathSelected(parent.pathByAddingChild(childNode))) { return false; } } return true; }
/** * Creates scroll panel with templates tree in it. * * @return scroll panel */ private JScrollPane createTreeScrollPanel() { for (Map.Entry<VirtualFile, VcsRoot> entry : files.entrySet()) { createDirectoryNodes(entry.getKey(), entry.getValue()); } final FileTreeRenderer renderer = new FileTreeRenderer(); tree = new CheckboxTree(renderer, root); tree.setCellRenderer(renderer); tree.setRootVisible(true); tree.setShowsRootHandles(false); UIUtil.setLineStyleAngled(tree); TreeUtil.installActions(tree); final JScrollPane scrollPane = ScrollPaneFactory.createScrollPane(tree); scrollPane.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED); TreeUtil.expandAll(tree); tree.getModel().addTreeModelListener(treeModelListener); treeExpander = new DefaultTreeExpander(tree); return scrollPane; }
last = XArray.resize(last, level * 2); final int count = model.getChildCount(node); for (int i = 0; i < count; i++) { last[level] = (i == count - 1); last = format(model, model.getChild(node, i), buffer, level + 1, last, lineSeparator);
/** Find the node in the tree that contains the given Thing.*/ static public DefaultMutableTreeNode findNode(final Object thing_ob, final JTree tree) { if (null != thing_ob) { // find which node contains the thing_ob DefaultMutableTreeNode node = (DefaultMutableTreeNode)tree.getModel().getRoot(); if (node.getUserObject().equals(thing_ob)) return node; // the root itself final Enumeration<?> e = node.depthFirstEnumeration(); while (e.hasMoreElements()) { node = (DefaultMutableTreeNode)e.nextElement(); if (node.getUserObject().equals(thing_ob)) { //gotcha return node; } } } return null; }
public TreePath findTreePath(String s) { Enumeration<DefaultMutableTreeNode> e = ((DefaultMutableTreeNode) tree.getModel().getRoot()).depthFirstEnumeration(); while (e.hasMoreElements()) { DefaultMutableTreeNode node = e.nextElement(); if (node.toString().equalsIgnoreCase(s)) { return new TreePath(node.getPath()); } } return null; }
private void expandSubtree(TreePath path, boolean expand) { if (path == null) { TreePath selectionPath = getSelectionPath(); path = selectionPath == null ? new TreePath(treeModel.getRoot()) : selectionPath; } DefaultMutableTreeNode currentNode = (DefaultMutableTreeNode) path.getLastPathComponent(); Enumeration children = currentNode.children(); while (children.hasMoreElements()) { DefaultMutableTreeNode child = (DefaultMutableTreeNode) children.nextElement(); TreePath expandedPath = path.pathByAddingChild(child); expandSubtree(expandedPath, expand); } if (expand) { expandPath(path); } else if (path.getParentPath() != null) { collapsePath(path); } }
/** * Find a node in the tree. The node must be "visible" to be found. * @param address The full address of the node matching ManagementModelNode.addressPath() * @return The node, or null if not found. */ public ManagementModelNode findNode(String address) { ManagementModelNode root = (ManagementModelNode)tree.getModel().getRoot(); Enumeration<javax.swing.tree.TreeNode> allNodes = root.depthFirstEnumeration(); while (allNodes.hasMoreElements()) { ManagementModelNode node = (ManagementModelNode)allNodes.nextElement(); if (node.addressPath().equals(address)) return node; } return null; }
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); DefaultMutableTreeNode root = new DefaultMutableTreeNode("Root"); DefaultMutableTreeNode chapter1 = new DefaultMutableTreeNode("Chapter 1"); DefaultMutableTreeNode sub1 = new DefaultMutableTreeNode("1.1"); DefaultMutableTreeNode sub2 = new DefaultMutableTreeNode("1.2"); DefaultMutableTreeNode sub3 = new DefaultMutableTreeNode("1.3"); sub3.add(sub32); final JTree tree = new JTree(root); expandTree(tree, false); JScrollPane pane = new JScrollPane(tree); pane.setPreferredSize(new Dimension(200, 200)); TreeNode root = (TreeNode) tree.getModel().getRoot(); expandAll(tree, new TreePath(root), expand); TreeNode node = (TreeNode) path.getLastPathComponent(); while (enumeration.hasMoreElements()) { TreeNode n = (TreeNode) enumeration.nextElement(); TreePath p = path.pathByAddingChild(n); tree.expandPath(path); } else { tree.collapsePath(path);
frame.setLocationRelativeTo(null); final JTree tree = new JTree(buildDemoModel()); content.add(new JScrollPane(tree), BorderLayout.CENTER); return tree.getExpandedDescendants(new TreePath(tree.getModel().getRoot())); while (enumeration.hasMoreElements()) { TreePath treePath = enumeration.nextElement(); tree.expandPath(treePath); DefaultMutableTreeNode root = new DefaultMutableTreeNode("Root"); DefaultMutableTreeNode childNode = new DefaultMutableTreeNode("A"); childNode.add(new DefaultMutableTreeNode("A1")); childNode.add(new DefaultMutableTreeNode("A2")); root.add(childNode); root.add(childNode); return new DefaultTreeModel(root);
import javax.swing.*; import javax.swing.tree.*; import java.awt.BorderLayout; import java.awt.event.*; import java.util.*; public class Tree { public static void main(String[] args) { JPanel panel = new JPanel(new BorderLayout()); final JTree tree = new JTree(); panel.add(new JScrollPane(tree)); JButton btn = new JButton("Press Me"); btn.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent ae) { for (Enumeration e = ((TreeNode)tree.getModel().getRoot()).children();e.hasMoreElements();) { TreeNode tn = (TreeNode)e.nextElement(); tree.expandPath(new TreePath(((DefaultTreeModel)tree.getModel()).getPathToRoot(tn))); } } }); panel.add(btn, BorderLayout.SOUTH); JFrame frame = new JFrame(""); frame.getContentPane().add(panel); frame.setSize(300, 300); frame.setLocation(100, 100); frame.pack(); frame.show(); } }
JHelpNavigator nav = getNavigator(jhelp); JTree tree = getTree(nav); TreeModel model = tree.getModel(); Object root = model.getRoot(); match = null; findNode(model, root, nodeLabel); TreePath path = new TreePath(match.getPath()); tree.setSelectionPath(path); tree.scrollPathToVisible(path); for (Enumeration e = jhelp.getHelpNavigators(); e.hasMoreElements(); ) nav = (JHelpNavigator) e.nextElement(); if (nav.getNavigatorName().equals("TOC")) components = sp.getViewport().getComponents(); count = components.length; i = 0; return; int count = model.getChildCount(o); for( int i=0; i < count; i++ ) Object child = model.getChild(o, i ); if ( model.isLeaf( child ) ) if(search.equals(((TOCItem)((DefaultMutableTreeNode)child).getUserObject()).getName()))
/** * Select node based on the associated user object. * * @param tree * @param object */ public static void setSelected(JTree tree, Object object) { DefaultMutableTreeNode root = (DefaultMutableTreeNode) tree.getModel().getRoot(); Enumeration e = root.depthFirstEnumeration(); while (e.hasMoreElements()) { DefaultMutableTreeNode node = (DefaultMutableTreeNode) e.nextElement(); if (node.getUserObject() != null && node.getUserObject().equals(object)) { tree.setSelectionPath(new TreePath(node.getPath())); } } }
import java.util.Enumeration; import javax.swing.JTree; import javax.swing.tree.DefaultMutableTreeNode; import javax.swing.tree.TreePath; public class StoreTreePathExample { public static void main(String[] args){ JTree tree = new JTree(); Enumeration en = ((DefaultMutableTreeNode)tree.getModel().getRoot()).preorderEnumeration(); while(en.hasMoreElements()){ TreePath path = new TreePath( ((DefaultMutableTreeNode)en.nextElement()).getPath() ); String text = path.toString(); System.out.println(text); } } }
private void expandAll() { DefaultMutableTreeNode root = (DefaultMutableTreeNode) tree.getModel() .getRoot(); for (Enumeration enumeration = root.preorderEnumeration(); enumeration .hasMoreElements();) { DefaultMutableTreeNode node = (DefaultMutableTreeNode) enumeration .nextElement(); if (node.getChildCount() != 0) tree.expandPath(new TreePath(node.getPath())); } }
private void previous() { if (tree.getSelectionCount() == 0) { tree.setSelectionInterval(0, 0); return; } final TreePath path = tree.getSelectionPath(); final TreeNode selected = (TreeNode) path.getLastPathComponent(); @SuppressWarnings("unchecked") final Enumeration<TreeNode> nodeEnum = ((DefaultMutableTreeNode) tree.getModel().getRoot()).depthFirstEnumeration(); TreeNode previous = null; while (nodeEnum.hasMoreElements()) { final TreeNode current = nodeEnum.nextElement(); if (current == selected) { break; } else if (current.getParent() instanceof Step) { previous = current; } } if (previous != null) { navigateTo(previous); } }
@Override public void actionPerformed(ActionEvent e) { TreeNode root = (TreeNode) configTree[num].getModel().getRoot(); TreePath parent = new TreePath(root); for (Enumeration cat = root.children(); cat.hasMoreElements();) { TreeNode n = (TreeNode) cat.nextElement(); TreePath child = parent.pathByAddingChild(n); configTree[num].expandPath(child); } } });
@Override public void actionPerformed(ActionEvent e) { TreeNode root = (TreeNode) configTree[num].getModel().getRoot(); TreePath parent = new TreePath(root); for (Enumeration categ = root.children(); categ.hasMoreElements();) { TreeNode n = (TreeNode) categ.nextElement(); TreePath child = parent.pathByAddingChild(n); configTree[num].collapsePath(child); } } });
public List<TreePath> getVisibleNodes() { List<TreePath> result = new LinkedList<TreePath>(); Enumeration<TreePath> paths = tree.getExpandedDescendants(new TreePath( tree.getModel().getRoot())); if (paths != null) { while (paths.hasMoreElements()) { result.add(paths.nextElement()); } } return result; }
public void filter(final String searchTerm) { _searchTerm = searchTerm; updateTree(); expandStandardPaths(); // Expand only when search is active if (!searchTerm.equals("")) { final TreeNode root = (TreeNode) getModel().getRoot(); final DefaultMutableTreeNode libraryNode = (DefaultMutableTreeNode) root.getChildAt(1); final Enumeration<?> depthFirstEnumeration = libraryNode.depthFirstEnumeration(); while (depthFirstEnumeration.hasMoreElements()) { final DefaultMutableTreeNode node = (DefaultMutableTreeNode) depthFirstEnumeration.nextElement(); final TreePath treePath = new TreePath(node.getPath()); expandPath(treePath); } } }