You are calling Thread.sleep on the JavaFX application
thread => never do that, it will just freeze up your application and make it unresponsive.
Perhaps use a
PauseTransition instead (a pause transition gives control back to the JavaFX system while the pause is occurring).
You are loading into memory the entire decoded image data for all of the files in a folder at the same time. You don't need to do that. Instead load one file, run a pause transition. For example, when the pause transition completes in it's
setOnFinished event handler, load the next file and do another pause transition.
Also don't use System.exit(0) calls to quit your application, instead let the application end naturally rather than forcing through System.exit. If you must force an exit of a JavaFX application, use
Platform.exit either instead of or as well as System.exit. If you do call System.exit to exit for an fatal error condition, then have it return a non-zero value.
InterruptedExceptions are normal you don't need exit the system when you get an interrupt, you can restore the interrupt status instead (Thread.currentThread().interrupt();) - though when you remove your Thread.sleep calls you won't have a possibility of interrupts so you won't need to handle them.