- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
这个问题可能是针对ReactFX的创建者的,但欢迎其他人回答。
我目前开始在 JavaFX 应用程序中使用 ReactFX 进行数据共享和事件处理。我的问题是一个类如何订阅来监听来自两个(或更多)不同 EventStreams
的事件。假设在 Controller class
我有一个textfield
可能会更新为 new text(String)
,所以这个类将实现 Consumer<String>
。但你可能也想要这个textfield
更新为 new Integer
(例如)来自完全不同的来源,因此它必须实现 Consumer<Integer>
,只有你不能这样做,因为它已经实现了 Consumer<String>
.
我考虑过创建一个带有 id 字段(例如 Enum
)和 Object field
的包类。包含数据,我们将其命名为 ReactFXEventBundle
。只有此类的实例才能用作 Events
,消费者可以通过分析 id 字段来识别事件的类型。因此,所有 Consumer 类都将实现 Consumer<ReactFXEventBundle>
。这是正确的方法吗?
最佳答案
为了确保我们意见一致,我假设您的情况如下
class Controller {
TextField getTextField();
}
EventStream<String> strings;
EventStream<Integer> integers;
并且您希望将字符串
和整数
路由到TextField的textProperty()
。您可以这样做:
EventStreams.merge(
strings,
integers.map(Integer::toString)
).feedTo(controller.getTextField().textProperty());
换句话来说,您将整数流转换为字符串流,合并两个字符串流,并将合并的流馈送到字段的文本属性中。 (feedTo(property)
只是 subscribe(property::set)
的简写)。
请注意,您的 Controller 类不必直接实现 Consumer
。使用者实例是根据 property::set
方法引用创建的。
关于java - ReactFX Consumer 监听多个 EventStream,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27862175/
此 book关于 Sodium是对 FRP 的清晰明了的介绍。 我希望——因为关于钠的书很容易理解——通过比较两个库(钠和 ReactFX),人们可以利用他们从书中学到的知识,并使用这些知识在 Rea
问题 如何在 ReactFX 中正确组合多个属性更改流以用于 UndoFX(或任何用例)? 详细信息 这是我想要完成的任务的简短说明(完整的示例代码是 posted at GitHub ): 有一个具
这里是响应式(Reactive)编程的新手。 我正在尝试使用 ReactFX 在 JavaFX 中实现“惰性”实时搜索文本区域。这里所说的“懒惰”是指一旦用户停止输入一秒钟,它就会执行搜索。代码非常简
ReactFX 中的 EventStream 是否有任何功能可以缓存最后一个值,以便可以将其重播给新订阅者? RxJava Observable 有很多程序来完成此类任务。我希望 EventStrea
在 JavaFX 的 Property 中您可以通过 val.isNull() 获取 null 或非 null 的 boolean 绑定(bind)和val.isNonNull() . ReactFX
这个问题可能是针对ReactFX的创建者的,但欢迎其他人回答。 我目前开始在 JavaFX 应用程序中使用 ReactFX 进行数据共享和事件处理。我的问题是一个类如何订阅来监听来自两个(或更多)不同
我是 ReactFX 新手,我正在 try catch 典型复制操作中按下的 CTRL 和 C 键。 如何有效地将其捕获到流中?这是迄今为止我所能得到的一切,但它甚至没有编译...... final
/** * An observable analogue of {@code Stream.map}. The output list is updated * whenever the inpu
在常规 JavaFX 中,我会在 2 个或更多可观察对象上创建一个绑定(bind),如下所示: xxxProperty().bind(Bindings.createObjectBinding(() -
我是一名优秀的程序员,十分优秀!