当前位置: 首页 > 知识库问答 >
问题:

将TreeView与多个嵌套的ObservableList同步

陶高峻
2023-03-14

我有一个观察者,一个观察者,一个观察者。。。

它基本上下降了4个级别。

目标有一个列表

Objective有一个

战略有一个列表

战术有一个列表

任务

显然,这看起来是设置树视图以显示此数据的完美方案。如何才能使结构中的任何更改也显示在树视图上?

我认为目标将是根节点。每当一个目标被添加到它的列表中时,我们可以监听它并提醒目标刚刚创建了一个目标。不过,我应该如何以及在哪里设置这个监听器?我是否提醒目标?还是我提醒一些静态实用程序类更新其TreeView?

共有1个答案

聂涛
2023-03-14

使用ObservableList和添加侦听器,您可以轻松地完成自己的工作。

假设你在目标上放了一个听众。然后你会看到一些目标的变化。如果发生了更改(例如添加了一个目标),您将针对特定目标使用的树项(例如地图),然后向其添加一个子项。

当然,您可以通过以下方法简化您的工作:

private void addObjective(TreeItem<Object> specificGoal, List<Strategy > objective){
    TreeItem<Object> objectiveTreeItem = new TreeItem<>(objective);

    for(List<Tactic> strategy: objective){
        addStrategy(objectiveTreeItem, strategy);
    }
    specificGoal.getChildren().add(objectiveTreeItem);
}

为每个层都有一个方法。

当然,如果数据量很小,您可以擦除TreeView项,然后使用更新的列表重新启动用于创建它的方法。更简单但未优化。

 类似资料:
  • 我试图找到一种简单的方法来链接下载类型的树视图到相同类型的可观察列表。 主控制器。JAVA Download.java 如何实现按对象删除(下载)机制,是否有更简单的方法将observablelist的项绑定到treeview?

  • 我有一个目标,它有一个目标清单。一个目标有一系列的策略。一个战略有一个战术清单。战术有一个任务列表。 我希望能够在树视图中显示这一点,我希望树与项目同步。也就是说,如果我删除一个目标,该目标及其子目标也将从TreeView中消失。 计划是创建一个包装PlanItem的TreeItem。然后,将TreeItem的子TreeItems与PlanItem的子PlanItems同步。对于每个嵌套的Plan

  • 我正在处理一个请求验证功能,在那里我需要检查是否有某个字符串值存在于包含在对象中的属性中,该属性包含在地图条目的值中,该地图是对象的一部分,最后是我的请求正文包含一组这些对象。 为了让它更清晰,我将只使用重要的代码部分来重新创建我的情况。 假设我的在请求体中被接收,它具有以下属性: 现在,我们有了,它有一个类型为的特定包装器对象: 该包装类包含一个映射: 最后,包含需要检查的属性,如果它包含某个值

  • 我在将dsata绑定到tabl时遇到了一些麻烦;JavaFX中的E 我有我的模型controtor.java 公共课指挥{

  • 问题内容: 我今天才刚开始编写Go(有0个经验),想知道Go是否支持任何形式的“构建所有源文件” 。 我的项目结构是 当我做 这失败了,这是正确的,因为所有源文件都在子包中。 是否有一个命令可以构建所有子包, 而无需显式列出每个 子包? 问题答案: 你以后到基本目录,使用注意,有3个阶段,因为它是一个省略号。这将递归地构建所有子目录。当然,您始终可以从任何地方进行操作而无需访问目录。 对于使用依赖

  • 问题内容: 嗨,在一个测试套件上,我看来我有2个同一个提供程序的活动实例,一个实例用于实现,另一个实例用于实际实现。 我的结论基于以下事实:在测试中,我尝试用jest.fn调用替换方法,但仍然在我正在测试的服务上,该方法仍指向原始实现。 更奇怪的是,我能够模拟执行完全相同过程的另一个服务,好像取决于这些服务的注入方式(它们来自容器图中的位置)是否起作用。 我将尝试分享一些片段,但是,当然,只有一个