【问题标题】:JTree with form builder带有表单生成器的 JTree
【发布时间】:2013-11-27 12:08:51
【问题描述】:

我使用默认的 NetBeans 编辑创建了一个表单,并在其上放置了 jTree。 然后它以某种方式在其中创建了一堆元素,例如“颜色”、“运动”、“食物”。但它不在创建代码中。它来自哪里以及如何编辑它...

即使我这样做 jTree1.removeAll(); 一切仍然存在......而且我的代码中没有用于向 jTree 添加新项目的代码。

private void test(java.awt.event.MouseEvent evt) {
    //trying to remove all, but it does not remove anything
    jTree1.removeAll();

    //it does print it in debug meaning that this function is called
    System.out.println("qwe");

    //create the root node
    DefaultMutableTreeNode root = new DefaultMutableTreeNode("Root");
    //create the child nodes
    DefaultMutableTreeNode child1 = new DefaultMutableTreeNode("Child 1");
    DefaultMutableTreeNode child2 = new DefaultMutableTreeNode("Child 2");

    //add the child nodes to the root node
    root.add(child1);
    root.add(child2);

    //now how do I add it to the tree?
    //???
}

我需要能够在运行时编辑jTree 内容。

【问题讨论】:

  • 如何创建您的JTree?你想做什么,不清楚。
  • 我在 NetBeans 中使用表单构建器,我只是将它放在这个可视化编辑器中的表单上。除此之外,我什么也没做。

标签: java swing jtree removeall defaulttreemodel


【解决方案1】:

接下来您创建JTree 时遇到问题,像这样JTree tree = new JTree()(根据docs)它有示例节点。创建节点(root,child1,child2)后添加下一行,一切都会正常工作:

DefaultTreeModel model =(DefaultTreeModel) jTree1.getModel();
model.setRoot(root);

另外你不需要调用jTree1.removeAll();它用于其他目的。(docs

阅读JTree的教程

【讨论】:

  • 哦。现在它是有道理的。谢谢你的解释!
【解决方案2】:

在自定义 GUI 初始化程序 createUIComponents() 方法中初始化您的 JTree。

要为某个组件创建自定义 GUI 初始化程序源代码,请遵循以下一般过程:

  1. 选择所需的组件。

  2. 在检查器中,选中自定义创建选项。

  3. 在文本编辑器中,找到方法 createUIComponents(),然后键入所需的源代码。此方法中的代码在编译时不会被删除。

完整解释: https://www.jetbrains.com/help/idea/creating-form-initialization-code.html

【讨论】:

    猜你喜欢
    • 2015-03-14
    • 2015-01-16
    • 1970-01-01
    • 2016-01-04
    • 1970-01-01
    • 2012-10-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多