首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将DefaultMutableTreeNode分配给JTree

将DefaultMutableTreeNode分配给JTree
EN

Stack Overflow用户
提问于 2011-10-20 20:32:53
回答 2查看 2.1K关注 0票数 2

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

EN

回答 2

Stack Overflow用户

发布于 2011-10-20 20:39:25

下面的例子将帮助你做到这一点

代码语言:javascript
复制
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);
}
}
票数 5
EN

Stack Overflow用户

发布于 2011-10-20 20:40:36

How to Use Trees

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7835962

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档