I think everything about preventing a deadlock.
Swing components are not considered thread safe, and they do not have to be due to this Dispatcher Thread event. If the user interface was multithreaded, the entire application would have to rely on each component that behaves in a thread-safe manner, and if it was not, then in unclear situations, deadlocks may occur.
So this is just safer.
Not only that, but the same design was chosen by Windows Forms (& .Net), GTK, Motif and others. I wonder if Java will be forced into this decision by the basic APIs of the OS with which they interact. Of course, SWT is forcibly moving into this situation with Windows Forms.
For more information, "EDT" is a good place to run http://en.wikipedia.org/wiki/Event_dispatching_thread
For .NET, the equivalent of SwingWorker is known as BackgroundWorker.
laher Apr 04 2018-11-21T00: 00Z
source share