您好我想一起使用 rxscala 和 scalafx 所以我这样做是为了重新打包鼠标事件:
def mouseEvents: Observable[MouseEvent] = Observable.create(observer => {
stage.filterEvent(MouseEvent.Any)((event: MouseEvent) => {
observer.onNext(event)
event.consume
})
Subscription { ??? }
})
问题是在Subscription { ??? }块内我想删除注册的事件过滤器,filterEvent()但看着它我发现它filterEvent()没有保留对事件过滤器的引用,所以我不能使用stage.removeEventFilter(). 我也没有看到removeFilterEvent()等价物,那么如何使用 remove 注册事件过滤器filterEvent()?
我想一种解决方法是不使用filterEvent(),而是使用 javafx addEventFilter(),但语法更糟。