gpt4 book ai didi

java - 当我尝试将 JTree 添加到 JFrame 时,JTree 不更新

转载 作者:行者123 更新时间:2023-12-02 12:15:52 27 4
gpt4 key购买 nike

当我尝试动态更新我的 JTree 时,它​​工作得很好,但只显示我的新树。但后来我尝试将它添加到 JFrame - 什么也没有发生。 JTree 不更新。我不明白为什么。

public MainForm(){

DefaultMutableTreeNode root = new DefaultMutableTreeNode("ROOT");
DefaultTreeModel model = new DefaultTreeModel(root);

tree = new JTree(model);

buildTree(model, "Node 1/Node 2/Node 3/Node 4");
buildTree(model, "Node 1/Node 2/Node 3/Node 5");
buildTree(model, "Node 1/Node 2/Node 3/Node 6");
buildTree(model, "Node 1/Node 2/Node 4/Node 5");
buildTree(model, "Node 1/Node 1/Node 3/Node 5");


JFrame frame = new JFrame();
frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
frame.add(tree);
frame.setSize(900, 600);
frame.setVisible(true);

//if I comment next line I`ll get just a tree in my frame (but updated
//as I wanted);
//But if not I`ve got my form with buttons and tree, but tree doesn`t
//update
frame.setContentPane(rootMainForm);

}

最佳答案

您还应该将您的添加到rootMainForm

这一行

frame.add(tree)

将树添加到ContentPane 而这一行

frame.setContentPane(rootMainForm);

覆盖整个框架的ContentPane。我打赌你有 2 个 JTree。当您注释最后一行时,您将看到最近添加的组件(此处为tree)。当您取消注释时,您将使用未知的面板覆盖框架的全部内容 rootMainForm

你的评论让我觉得,你实际上尝试在这一行中更新你的jtree

 tree = new JTree(model);

这将创建与 GUI 分离的全新 JTree。如果您想更新现有的 JTree,只需使用 tree.setModel(model) 而不是 tree=new JTree(model)

关于java - 当我尝试将 JTree 添加到 JFrame 时,JTree 不更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46186186/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com