I\'d like to pause the execution of a method on the JavaFX application thread and wait until the user does interaction with the UI. It\'s important not to freeze the UI.
I am currently running JFX 8 where I have the similar feature in the Toolkit class.
Toolkit.getToolkit().enterNestedEventLoop(obj);
and
Toolkit.getToolkit().exitNestedEventLoop(obj);
Have not looked at the JFX 9 source, but my bet is that the Platform methods are simply shortcuts to the same.
You can do so by using Platform.enterNestedEventLoop to pause the execution of the event handler and Platform.exitNestedEventLoop (available since JavaFX 9) to resume the execution:
private final Object PAUSE_KEY = new Object();
private void pause() {
Platform.enterNestedEventLoop(PAUSE_KEY);
}
private void resume() {
Platform.exitNestedEventLoop(PAUSE_KEY, null);
}
Platform.enterNestedEventLoop
returns when Platform.exitNestedEventLoop
is called with the same parameter passed as first argument.