我希望能够删除使用 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);
关于lambda - 如何删除使用 lambda 创建的 JavaFX 中的 EventFilter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30172678/