Java 改变JTree的内容

Java 改变JTree的内容,java,swing,jtree,Java,Swing,Jtree,让我们试试这个: JTree tree = new JTree (DefaultMutableTreeNode ("blank")); 因为这个项目才刚刚开始。用户选择数据文件后,数据文件将被读入内存并创建一个新树: tree = new JTree (dataobject.makeTree (file.getName ())); 然而,保存JTree的框架仍然只显示“blank”和一个除根之外为空的树 一个人如何彻底摧毁老树并分配一棵新树?我认为重新分配应该有效,垃圾收集将捕获旧数据。但是

让我们试试这个:

JTree tree = new JTree (DefaultMutableTreeNode ("blank"));
因为这个项目才刚刚开始。用户选择数据文件后,数据文件将被读入内存并创建一个新树:

tree = new JTree (dataobject.makeTree (file.getName ()));
然而,保存JTree的框架仍然只显示“blank”和一个除根之外为空的树


一个人如何彻底摧毁老树并分配一棵新树?我认为重新分配应该有效,垃圾收集将捕获旧数据。但是,显然我的假设是错误的。

不要创建新的
JTree
,而是创建一个新的
TreeModel
,并将其应用于屏幕上已经存在的树。这是MVC范例的基础,视图和数据是分开的“如何完全破坏旧树并分配新树?我认为重新分配应该起作用,垃圾收集会捕获旧数据。但是,显然我的假设是错误的。”-给变量分配新值不会“破坏”以前由它保存的旧数据,它只是使它指向新变量。其他所有东西仍然指向旧数据(例如,显示树的容器)、JTree、DefaultMutableTreeNode,现在还有其他称为TreeModel的东西?他们没有让这变得容易。谢谢,我会调查的。详情请参阅。MVC在OutSwing中被广泛使用(JavaFX、Web、ios、Android……你明白了)。请查看以了解更多详细信息。事实上,使用
JTree#setModel
要比删除旧的
JTree
和新的JTree简单得多,然后重新验证和UI以确保其布局良好:哦,再次感谢。到目前为止,我的任何课程都没有提到过这个MVC模型,但它看起来像是一个需要讨论的基本概念。不要创建新的
JTree
,而是创建一个新的
TreeModel
,并将其应用到屏幕上已经存在的树上。这是MVC范例的基础,视图和数据是分开的“如何完全破坏旧树并分配新树?我认为重新分配应该起作用,垃圾收集会捕获旧数据。但是,显然我的假设是错误的。”-给变量分配新值不会“破坏”以前由它保存的旧数据,它只是使它指向新变量。其他所有东西仍然指向旧数据(例如,显示树的容器)、JTree、DefaultMutableTreeNode,现在还有其他称为TreeModel的东西?他们没有让这变得容易。谢谢,我会调查的。详情请参阅。MVC在OutSwing中被广泛使用(JavaFX、Web、ios、Android……你明白了)。请查看以了解更多详细信息。事实上,使用
JTree#setModel
要比删除旧的
JTree
和新的JTree简单得多,然后重新验证和UI以确保其布局良好:哦,再次感谢。到目前为止,我的任何一堂课都没有提到过这个MVC模型,但它似乎是一个需要讨论的基本概念。