Sorry, I meant event-dispatch thread. SwingWorker is a good choice for executing scheduled tasks but it is usually recommended to be used for long running tasks. For UI things that you want executed after a delay or repeteadly javax.swing.Timer is recommended.
We are using SwingWorker in spark, but for some UI things we were using java.util.Timer - I changed this to use javax.swing.Timer.
Some documentation:
SwingWorker: http://docs.oracle.com/javase/tutorial/uiswing/concurrency/worker.html
javax.swing.Timer: http://docs.oracle.com/javase/tutorial/uiswing/misc/timer.html