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

JavaFX:如何使包含其他可观察对象列表的可观察对象无效

穆英飙
2023-03-14
public class ObservedContainer implements Observable {
  ArrayList<AnotherObservableClass> someOtherClasses;
  (...observable implementation omitted for brevity)
}
public class ObservedContainer implements Observable {
  ArrayList<AnotherObservableClass> someOtherClasses = new ArrayList<>();
  (...observable implementation omitted for brevity)

  public void addAnotherObservableClass(AnotherObservableClass a){
    someOtherClasses.add(a);
    fireInvalidationEvent();
    // This just notifies all listeners that the object has changed
  }

  public void removeAnotherObservableClass(AnotherObservableClass a){
    someOtherClasses.remove(a);
    fireInvalidationEvent();
  }  
}

共有1个答案

麹浩瀚
2023-03-14

有一个类应该为您处理这个问题:ObservableList

FxCollections.ObservabLearrayList方法可用于在列表中元素的属性修改时触发更新更改。

ObservableList<Node> list = FXCollections.observableArrayList(node -> new Observable[] { node.translateXProperty() });

如果列表元素之一的TranslateX属性被修改,则会触发侦听器。

list.addListener((Observable o) -> fireInvalidationEvent());
 类似资料:
  • Observables 是多个值的惰性推送集合。它填补了下面表格中的空白: 单个值 多个值 拉取 Function Iterator 推送 Promise Observable 示例 - 当订阅下面代码中的 Observable 的时候会立即(同步地)推送值1、2、3,然后1秒后会推送值4,再然后是完成流: var observable = Rx.Observable.create(functio

  • 我有一个class,它在其他属性中包含一个可观察列表 如何让JavaFX提取class

  • 我有一个组件订阅服务中的一个可观察对象。该方法反过来订阅另一个服务中的可观察对象。我想将一个数组从最后一个服务传递回第一个服务,然后第一个服务将该数组传递回组件。更具体地说,该组件调用其本地服务,然后调用一个数据服务,该数据服务通过http客户端访问我的数据库。http客户端正在工作,数据服务将数组返回给本地服务。本地服务接收数组,但我不知道如何将该数组作为可观察对象传递回组件。以下是简短的代码块

  • 问题内容: 学习了Observables之后,我发现它们与Node.js流非常相似。两者都有一种机制,可在新数据到达,发生错误或没有更多数据(EOF)时通知使用者。 我很想了解两者之间的概念/功能差异。谢谢! 问题答案: 无论 观测量 和node.js中的 流 让你解决同样的根本问题:异步处理值的序列。我认为,两者之间的主要区别与激发其外观的环境有关。该上下文反映在术语和API中。 在 Obser

  • 我正在努力理解如何合并两个可观察对象并利用它们合并后的产品。我在mergeMap、switchMap、flatMap、大理石图等上看了无数视频,但我仍然不知道合并观测值是如何工作的。我觉得在使用RxJS的时候,我不会有效率,甚至不会正确。 我有一个要订阅的可观测值,我还想订阅代码中特定表单数组的valueChanges可观测值。但是,我需要确保只有在正确构建表单数组之后才能进行第二次订阅,否则将出

  • 问题是: 使用及其其他功能不是更好吗?