An example of not blocking the UI in Swing while running long running tasks