您好我想一起使用 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()
,但语法更糟。