【问题标题】:Can't set JTree nodes无法设置 JTree 节点
【发布时间】:2021-07-14 00:26:06
【问题描述】:

使用 IntelliJ 平台插件并尝试在 JTree 中设置节点,但我无法让它工作。

这是表单中的JTree,代码如下:

public class MyToolWindow {

  private JTree tree1;
  private JPanel myToolWindowContent;

  public MyToolWindow(ToolWindow toolWindow) {
    DefaultMutableTreeNode top = new DefaultMutableTreeNode("The Java Series");
    //createNodes(top);
    tree1 = new JTree(top);
  }

  public JPanel getContent() {
    return myToolWindowContent;
  }

当我运行它时,我得到的只是样板树:

我在这里做错了什么??

【问题讨论】:

    标签: java swing jtree intellij-plugin


    【解决方案1】:

    找到适合我的解决方案:

    我勾选了“自定义创建”框,然后在代码中实现了createUIComponents方法:

    private void createUIComponents() {
        DefaultMutableTreeNode root = new DefaultMutableTreeNode("Root");
        DefaultTreeModel treeModel = new DefaultTreeModel(root);
        treeModel.setAsksAllowsChildren(true);
        tree1 = new JTree(treeModel);
      }
    

    这让我配置了一个基本的 JTree,但我需要它。然后当我的 ToolWindow 加载时,我可以像这样访问树:

    DefaultTreeModel model = (DefaultTreeModel)tree1.getModel();
    DefaultMutableTreeNode root = (DefaultMutableTreeNode)model.getRoot();
    root.add(new DefaultMutableTreeNode("another_child"));
    model.reload(root);
    

    不是 100% 确定这是最佳实践方式,但它对我有用。

    【讨论】:

      猜你喜欢
      • 2012-11-27
      • 1970-01-01
      • 2015-07-23
      • 1970-01-01
      • 2014-01-08
      • 2021-08-02
      • 2013-01-11
      • 1970-01-01
      • 2011-11-20
      相关资源
      最近更新 更多