Java 当我试图将JTree添加到JFrame时,它不会更新
当我尝试动态更新我的JTree时,它工作得很好,但只显示我的新树。但是,我试图将它添加到JFrame中——什么也没有发生。JTree不更新。我不明白为什么Java 当我试图将JTree添加到JFrame时,它不会更新,java,swing,Java,Swing,当我尝试动态更新我的JTree时,它工作得很好,但只显示我的新树。但是,我试图将它添加到JFrame中——什么也没有发生。JTree不更新。我不明白为什么 public MainForm(){ DefaultMutableTreeNode root = new DefaultMutableTreeNode("ROOT"); DefaultTreeModel model = new DefaultTreeModel(root); tre
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);
}
您还应该将
树
添加到rootmain表单
这条线
frame.add(tree)
将树添加到ContentPane
而这条线
frame.setContentPane(rootMainForm);
覆盖框架的整个ContentPane
。我打赌你有两个JTree。注释最后一行时,您将看到最近添加的组件(tree
此处)。当您取消对它的注释时,您将使用Unknown面板覆盖框架的整个内容rootMainForm
你的评论让我觉得,你实际上是想在这行中更新你的jtree
tree = new JTree(model);
这将创建与GUI分离的全新
JTree
。如果您想更新现有的JTree,只需使用tree.setModel(model)
而不是tree=newjtree(model)
您知道这段代码什么都没说吗?未知buildTree
unknownrootMainForm
但根据MainForm.form,我得到了1个JTree,它在我的rootMainForm中。但是您正在这里创建新的JTreetree=newjtree(model)代码>非常感谢您的时间和耐心!我有点累了,或者说我有点笨,我想>@AleksanderIksanov,不用担心。这样的错误发生在你学习新东西的时候:)祝你好运!