Java 共享模型(相关部分)的JTree/多个JTree的静态过滤

Java 共享模型(相关部分)的JTree/多个JTree的静态过滤,java,swing,jtree,defaulttreemodel,Java,Swing,Jtree,Defaulttreemodel,我有一个Jtree,上面有两个最优秀的孩子,分别是a和B。目前,代码被设计为在同一面板中显示这两个元素,因为它们是共享JTree的一部分。我想做的是,将A和B分离到两个不同的面板上 现在,Jtree有一个复杂的更新系统,有一些方法可以让a成员自动输入B,反之亦然,等等。我真的不想有两个独立的Jtree。我知道我可以通过以下方式访问相关数据: myTree.getModel().getChild(myTree.getModel().getRoot(),i) 但是有没有一种方法可以在一个面板中显示

我有一个Jtree,上面有两个最优秀的孩子,分别是aB。目前,代码被设计为在同一面板中显示这两个元素,因为它们是共享JTree的一部分。我想做的是,将A和B分离到两个不同的面板上

现在,Jtree有一个复杂的更新系统,有一些方法可以让a成员自动输入B,反之亦然,等等。我真的不想有两个独立的Jtree。我知道我可以通过以下方式访问相关数据:

myTree.getModel().getChild(myTree.getModel().getRoot(),i)
但是有没有一种方法可以在一个面板中显示a及其子项,在另一个面板中显示B

如果没有,我想我将不得不创建myTree\u AmyTree\u B来跟踪myTree。最整洁、最有效的方法是什么

更新


所以我选择创建两棵独立的树。然而,我有一个小问题,当我在我的两棵新树中“root_a.add(a)”和“root_B.add(B)”,其中root_aroot_B分别是myTreeAmyTreeB的根,a和B从myTree的根分离,我再也不能钩住myTreeA的元素,B调用原始myTree并调用相关例程。有没有办法告诉myTreeAmyTreeB跟踪A和B而不删除它们的父项?换句话说,我可以在树之间共享模型/节点吗?

最简单的方法是创建两个单独的树,以便附着到A和B的模型可以轻松更新和反映

实现您自己的,它支持FilterGit的遗留代码,我希望避免这种情况。您可以将自己的树模型实现为旧模型的包装器,它还提供过滤功能。为什么要将myTree作为TreeA和TreeB的父级,而不是根a和根B?另外,如果您想与它们的根树和MyTree共享TreeA/treeb的节点,那么您可以访问链接:我没有提到父子关系。我希望它们与“父”树共享相同的模型。这不完全是一回事,是吗?不,如果你想在树之间共享节点的话。是的,你总是可以在两个jtree之间共享模型。您可以查看此处共享的示例: