title: which thread to launch JOptionPane?
body: <p>We have a Swing application with socket communication and other threads. We know we need to use <code>SwingUtilities.invokeLater()</code> to update Swing display from other threads. But how about <code>JOptionPane</code>? do we need to use <code>SwingUtilities.invokeLater()</code> from other threads to launch <code>JOptionPane</code>? </p>
  
  <p>if the answwer is yes, how to use JOptionPane to block the procedure? </p>
  
  <p>if the answer is no, doesn't JOptionPane belong to GUI display?</p>