java - 将 DefaultMutableTreeNode 分配给 JTree

标签 java swing netbeans jtree

我正在 Netbeans 中开发一个小型桌面应用程序。我将一个 JTree 拖放到我的 JFrame 上,现在我想动态填充这个 JTree 的节点层次结构。为此,我编写了一个返回 DefaultMutableTreeNode 对象的方法。现在我如何将此对象分配给我拖放的 JTree

最佳答案

以下示例将帮助您做到这一点

package commondemo;
/**
*
* @author hemant
 */
 import java.awt.*;
 import javax.swing.*;
 import javax.swing.tree.*;

 public class SimpleTree extends JFrame {
 public static void main(String[] args) {
 new SimpleTree();
}

public SimpleTree() {
super("Creating a Simple JTree");


Container content = getContentPane();
Object[] hierarchy =
  { "javax.swing",
    "javax.swing.border",
    "javax.swing.colorchooser",
    "javax.swing.event",
    "javax.swing.filechooser",
    new Object[] { "javax.swing.plaf",
                   "javax.swing.plaf.basic",
                   "javax.swing.plaf.metal",
                   "javax.swing.plaf.multi" },
    "javax.swing.table",
    new Object[] { "javax.swing.text",
                   new Object[] { "javax.swing.text.html",
                                  "javax.swing.text.html.parser" },
                   "javax.swing.text.rtf" },
    "javax.swing.tree",
    "javax.swing.undo" };
DefaultMutableTreeNode root = processHierarchy(hierarchy);
JTree tree = new JTree(root);
content.add(new JScrollPane(tree), BorderLayout.CENTER);
setSize(275, 300);
setVisible(true);
}

/** Small routine that will make node out of the first entry
*  in the array, then make nodes out of subsequent entries
*  and make them child nodes of the first one. The process is
*  repeated recursively for entries that are arrays.
*/

private DefaultMutableTreeNode processHierarchy(Object[] hierarchy) {
 DefaultMutableTreeNode node =
   new DefaultMutableTreeNode(hierarchy[0]);
 DefaultMutableTreeNode child;
for(int i=1; i<hierarchy.length; i++) {
  Object nodeSpecifier = hierarchy[i];
  if (nodeSpecifier instanceof Object[])  // Ie node with children
    child = processHierarchy((Object[])nodeSpecifier);
  else
    child = new DefaultMutableTreeNode(nodeSpecifier); // Ie Leaf
  node.add(child);
}
return(node);
}
}

关于java - 将 DefaultMutableTreeNode 分配给 JTree,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7835962/

相关文章:

java - 在 Netbeans/Maven 中远程调试单元测试

java - Java 中 LinkedList 的意外行为

java - 将 JLayeredPane 引入现有 JFrame

具有多个 JFrame 的 java.util.observer

java - JSpinner 对 Windows 上的 MouseWheelEvent 没有反应

java - 动态添加 JLabel 到 JPanel

javascript - NetBeans Javascript?

java - Java 中的键绑定(bind)不起作用

java - af :Calendar component, 按列类型过滤

java - 是否可以从 URL 向 Elastic Search 插入数据?