如何删除使用 lambda 创建的 JavaFX 中的 EventFilter

How can I remove an EventFilter in JavaFX created with a lambda

我希望能够删除使用 lambda 设置的事件过滤器。我不确定这是否可行?

我看过这个使用内部 类 的例子:http://www.java2s.com/Tutorials/Java/JavaFX/1120__JavaFX_Event_Filter.htm

但是,如果我这样创建过滤器:

addEventFilter(MouseEvent.MOUSE_CLICKED, event -> {
        PaneWithSelectionListener parent = (PaneWithSelectionListener)getParent();
        parent.selectAnnotation(this);
        enableTextEditing(event);
        event.consume();
    });

我希望能够删除它 - 我可以在使用 lambda 时执行此操作还是需要使用内部 类?

谢谢!

就存储它:

EventHandler<MouseEvent> myHandler = ...

然后添加过滤器:

addEventFilter(MouseEvent.MOUSE_CLICKED, myHandler);

稍后将其删除:

removeEventFilter(MouseEvent.MOUSE_CLICKED, myHandler);