Использование событий с помощью EventFilters

Во-первых, кто-нибудь может мне объяснить, почему мойMouseEvent потребляется независимо от того, какойAlert-Опции я выбираю? Я думаю, это как-то связано с вызовомAlert в пределахEventFilter, но это просто еще не ясно для меня.

public class EventFilterConsumeErrorExample extends Application
{
  @Override
  public void start( final Stage primaryStage )
  {
    final CheckBox checkBox = new CheckBox( "Check me!" );
    checkBox.setOnAction( ( event ) ->
    {
      System.out.println( "onAction: " + checkBox.isSelected() );
    } );

    checkBox.addEventFilter( MouseEvent.MOUSE_RELEASED, ( event ) ->
    {
      System.out.println( "onFilter" );

      final Alert alert = new Alert( AlertType.CONFIRMATION, "Do you wonna consume this Event?" );

      if ( alert.showAndWait().get().equals( ButtonType.OK ) )
      {
        System.out.println( "Yes, consume Event" );
        event.consume();
      }
      else
      {
        System.out.println( "No, do NOT consume Event" );
        //<-- Why is the Event consumed anyway? onAction won´t be called.
      }
    } );

    final BorderPane root = new BorderPane( checkBox );
    final Scene scene = new Scene( root, 400, 400 );
    primaryStage.setScene( scene );
    primaryStage.show();
  }


  public static void main( final String[] args )
  {
    System.out.println( "Java Version " + System.getProperties().get( "javafx.runtime.version" ) );
    launch( args );
  }
}

Программа генерирует следующие выходные данные, дважды щелкнув флажок и один раз щелкнув каждое диалоговое решение:

Версия Java 8.0.72-b15
onFilter
Да, потреблять событие
onFilter
Нет, не потреблять событие

В обоих случаях флажок не меняет своего состояния,onAction не называется. Кто-нибудь может объяснить, почему событие не правильно обрабатывается флажком?

Во-вторых, как бы вы не отметили флажок проверки на основе решения пользователя?

Ответы на вопрос(1)

Ваш ответ на вопрос