Removing/Consuming javafx 上的 Lambda 表达式事件

Removing/Consuming Lambda expression events on javafx

所以,我使用 javafx 在 canvas 中创建了一个带有 lambda 表达式的事件,我希望它在使用后被删除,这是事件:

can.setOnMouseExited(event->{
    gc.clearRect(0, 0, 100, 100);
    gc.setStroke(Color.BLACK);
    gc.strokeRect(0, 0, 100, 100);
});

尝试调用 can.setOnMouseExited(null).

您可以在活动结束时将其设置为空:

can.setOnMouseExited(event->{
   gc.clearRect(0, 0, 100, 100);
   gc.setStroke(Color.BLACK);
   gc.strokeRect(0, 0, 100, 100);
   can.setOnMouseExited(null);
});

N.B. 这将调用 mouseExit 侦听器仅一次.