title: SwingUtilities.invokeLater() why is it needed?
body: <p>Why is it necessary to put GUI update code in <code>SwingUtilities.invokeLater()</code>?</p>
  
  <p>Why cant it be internally taken care of by Swing itself? Why does the caller have to care about how swing handles UI updates?</p>